Choosing Dual or Quad Core [closed]

I was reading the Jeff Atwood post on this topic and was wondering how much of that is still true today. His post is from Sept. 2007. This question stems from another question I asked recently which sent me to another question on the topic. So my question really is: As of late July 2009, what is the point of diminishing returns when it comes to CPU Cores?

I am looking to build me a development workstation for home. But I also want to play games (FPS, RTS) and do some work with Photoshop.


Solution 1:

Ultimately software needs to be written multi-threaded to use the cores and get the full performance out of the machine. The applications you mention, Photoshop and most 3D games are already written to use the hardware and have been for years.

Just don't expect notepad or ms-paint to be any quicker :-)

Multi-cores are going to be ubiquitous in the future, (if they aren't already), and Microsoft and Apple are working very hard to make using all the cores as easy as possible for developers.

I personally don't look at the number of cores, but I look for the sweet price / performance spot when it comes to processors.

Normally Intel have their high end processor with their highest clock speed, and number of cores that is really expensive. I then look at the lower clock speed versions of that processor and find that there is a reasonably priced high end processor. Not the highest end processor, but still a really good one for a good price.

I then take the money I would have spent on the processor and use it to put as much memory in the machine as it will take / I can afford.

I think that gives the best performance for price, aka bang for your buck.

Solution 2:

Don't all 3 links say exactly the same thing? It depends on your software

If you actually doing concurrent programming, you don't run into lock contention issues with the number of cores we have today on the desktop. You do have to start worrying about that when you get to 16+ cores. There are Azul systems with 768 cores and they are all doing useful work. Diminishing returns is usually a temporary issue. The future usually fixes it.

I would just buy a quad core. Software of tomorrow will use all of it.

Solution 3:

It may be worth considering recent i7 processors in this context, since they have the 'auto overclock' feature on workloads that are not very parallel... this may to some extent give you the best of both worlds.

(The way this works is, if there is not enough parallellism, the CPU will move all the work onto one or two of the available cores, put some/all of the other cores into a low-power state, and overclock the still-working cores a few speed steps).

Note that the earliers i7 processors did not step up that much, but I believe from memory that the latest ones do a fairly reasonable overclock. This means that mostly single-threaded games could increase the clock speed to run fast, and parallel workloads could reap the benefits of 4 cores, both at the same time.

(I'll see if I can find a link about this and add it)

Addendum:
It appears this technology is called "Turbo Mode" or "Dynamic Speed Technology" depending on where you read. Current i7s only overclock by up to 2 speed bins (typically 266MHz). However, the Lynnfield range when release will apparently be able to do 4 or 5 bins (533 - 677MHz), which would boost a 2.93GHz processor to 3.6GHz on non-parallel workloads.

Also note that this feature is apparently not dependent on how many cores are in use, but rather how heavily they are used. It is based on the amount of headroom in the TDP that is left so that the processor can overclock without breaking the thermal profile it is designed for. Note however that 'headroom' would usually be due to under-utilised cores, so the point still more or less stands.