What I think I want out of CPU performance in a new PC

October 9, 2016

If I'm going to consider building a new home PC (as I sort of am), one of the big questions is what sort of CPU I should build it around. There are a dizzying array of tradeoffs here, and you have to make some of them since features like ECC are only available in some models. In other words, you need to decide what you care about. ECC? Many cores? Advanced virtualization support? Overclocking capabilities? Thermal profile? And so on.

After thinking about it for a while, I think that I have two priorities, and one of them has wound up somewhat surprising me. The unsurprising priority is thermal efficiency and in particular a limit on how much heat I'm willing to have my CPU generate. I want a reasonably quiet PC and that means not generating too much heat, so a midrange TDP is my target (or at least my maximum). Looking at Intel CPUs, I'm probably aiming for about a 65 watt TDP.

The surprising priority for me is single-threaded CPU performance. I've traditionally had the view that CPU performance is not a big issue, especially single-threaded performance, but I've come around to the idea that this is actually wrong. Yes, I do things like compile Firefox with multiple cores, and I do try to use multiprocessing in general, but when it comes right down to it and I'm drumming my fingers waiting for my machine to get around to it, a fairly large amount of what I care about is actually single-threaded and going to stay that way. Firefox or Chrome interpreting the Javascript for a single website? That's single-threaded. Editor recalculations? Generally single-threaded. Video decoding? Single-threaded. And even for my photo processor, I believe that single-threaded CPU performance is reasonably important to make it responsive during editing.

Or the short version: I want to live in a glorious multi-processing world, but I don't think that I do right now. And I don't really think that that's going to fundamentally change over the next, oh, five years. Parallelizing CPU-heavy things is hard and there is only so much parallelism that can be extracted from some tasks; for example, I suspect that JavaScript performance for a single site is probably always going to be heavily biased towards single core performance.

(I do still care about multiple cores and multicore performance, and maybe programs will prove that I'm being too pessimistic here.)

Unfortunately, a focus on single-core performance with a midrange TDP probably means that I don't get nice things like ECC, since my impression is that one must give up CPU performance to get ECC if you want to stay with that midrange TDP.

Written on 09 October 2016.
« I have a blind spot where it comes to using chmod's symbolic modes
The modern web is an unpredictable and strange place to develop for »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Oct 9 01:10:57 2016
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.