How many cores should I buy?

 

Overview

Many people ask, "How many cores do I need for my system?" I am doing X. here is my assessment of the situation.

some applications will use what are called threads to do multitasking in their applications to do multiple tasks at the same time, usually asynchronously. most processors today have multithreading (Intel) or at kleast multiple cores (Intel, AMD) which can run threads.

if you see a processor spec listed as having only 1 thread, it's not a multithreaded processor. it might be multicore, but it's not multithreaded.

windows treats processor threads like individual processors. this way, whether it's AMD's plain old multicore procs or Intel's dual-threaded multi-core procs, you will get the compatible treatment from windows.

having more cores is (nowadays) always better. the more the better. or so I had thought. I found out (with no solution yet) that windows doesn't use more than 8 threads unless by sheer force. if you start 12 compile jobs simultaneously and you have a 12-threaded proc, then windows will be forced to use them. but otherwise, it will restrict to 8. not sure if this is a cpu feature or a windows 7 misfeature. hmm. one of the things I found out is that sofdtware vendors often allocate threads in powers of 2 (1, 2, 4, 8, 16, 32, 64, 128, ...). and this is what I am findding as an "Auto" allocation for multithreading or even for dropdown selections. I know of servers with 80 threads.

as of 3/2013, the best desktop proc on the market is currently the intel i7-3970x (I think it's not for long). it has a total of 12 threads. let's see if it stacks up against some of these apps:

app threads usage

  • compiler - 1 active thread
  • build CD/DVD ISOs - 1 active thread
  • office or other single-threaded apps - 1 active thread
  • gaming: 4-6 cores at least
  • dreamweaver CS5 - 15 threads active
  • VLC - 17 active threads
  • quicktime - 17 active threads
  • photoshop CS5 - 22 threads active
  • browser - firefox 5.0 takes 40 or more idle threads, probably several active (I have 40 tabs)
  • windows media player 11 - 21 active threads
  • antivirus - mcafee takes 142 threads when sitting idle, 90 active when scanning (that will chew up cores like crazy, no wonder it's so slow...)
  • OS - XP Pro takes 1000 threads, most of them idle
  • compression - as many active threads as you assign
  • video encoding - as many active threads/cores as you have, depending on program
  • audio encoding - as many active threads as you assign or have, depending on program
  • 7-zip a something.7z -mmt, 8 threads
  • Norton 360: can set for powers of 2 qty of threads, but only uses 1 thread
  • other multithreaded/multicore apps - all the cores you've got
  • you can set adobe premiere to take all the cpu's got during certain operations like rendering.
  • I think photoshop does also, like during content aware-whatever and 3d stuff. You can figure the other adobe products to take an average of 15-22 threads each, and chew up lots of memory. I have a 32-bit system with 3GiB of RAM, 4GiB of VM, and I can only run 2 adobe apps at the same time MAYBE with Bridge in the background (so make that a total of MAYBE 3).
  • Sonar X2 DAW can take as many threads as you want, but doesn't require much on an i7-3970x

Your usage?

the idle threads you can essentially ignore - for a time - they might become active at some point. but active? ahh there's the rub. most people only use 1 app at a time. some people like developers and people who use authoring software like Adobe have some long, slow processes, so someone might do video encoding while they are doing batch compiling or some other long slow job in the background. maybe several. I have been known to build several DVD ISOs in series-parallel while doing other stuff like browsing with 40+ tabs.

Q: are you a multitasker? or a single-tasker?

Q: is your intent to make as much use of your computing power as possible? or are you extremely focused on one thing?

I say, grab as many 4 cores or 8 threads would work for most folks. it always helps. it already sounds like 30 cores is too few for me, just for my antivirus... [that problem went away when I got a 2013 i7-3970x 3.5GHz as an upgrade over my old 2004 p4 HT 2.8GHz]

The reality is, more and more software is becoming multicore-aware or multithreaded. and how you divvy up those threads or cores is something you are going to have to learn how to tune to your liking. what I am finding is that auto is pretty much going to be put into "nice" mode, meaning it will play nicely and not take over the whole CPU so you can't do anyhting else. leave yourself at least 1-2 threads or cores available for working when the syetem isn't busy.

size up your situation and make an accounting of your apps you intend to use, then figure out how many cores you are going to need, then buy a machine. Before I made this assessment, I had long thought that anything under 30 cores is under-powered. this only proves it.

7-zip, parallelized

when I do backups for a client, I like to put them on DVD-sized-split-volumes 7-zip archived files, so usually one would think to do 7z a something.7z -v4600m and that would be it, but this would be single threaded. these jobs can take a long time or a short time, but I am learning that 7z a something.7z -mmt=on -v4600m does not work like I want it to. it does powers of 2 thread allocation. what I need is to specify a specific amount. because I want at least 1 thread for the OS and maybe 1 thread for whatever I am running, I will probably schedule for 12-1-1=10 threads unless I need more compression speed in which case I will use 11, using 10 when I need to spare some system usability so I don't go stir crazy from not being able to use the system. so I would do 7z a something.7z -mmt=10 -v4600m

cpu comparison

take this into consideration: an i7-995x Extreme cpu has 6 cores and 12 threads total (2 threads/core). the AMD has only 1 thread/core. The AMD is mid-list, the slower processor by about 1/2. The i5's are at the bottom of the list. the i7 extreme processor is faster than all but 1 top-of-the-line Xeon processor. however, it's limited to only 24GB of memory, which makes me sad. Photoshop chews up many GB of RAM for breakfast when doing panos. one guy was considering expanding beyond 64GB on his workstation.

passmark cpu benchmark tests for fastest CPUs

workstation?

If you have $24000 ($24K) lying around and need raw compute power, dual i7 cpu's or xeon cpu's, or you need up to 192GB of RAM, then you need a workstation. If you are doing rendering, you need a RenderBOXX. CAD. Authoring software like Adobe products. There are other reasons for using a workstation, such as scientific research and maybe even mathematics.

xeon cpu's can handle 192GB of RAM each (and it's typically shared). i7 cpu's can handle 24GB of RAM. but the i7 cpu's like on the 3DBOXX are faster and can be OC'd if you use liquid cooling.

Glossary of Terms

Hyper-threading
each thread per core in Windows is treated like a separate processor. higher-end intel processors have 2 threads per core, essentially giving you 2x the number of "processors". high end AMD APU processors currently (as of 6/2012) use only 1 thread per core. lower end processors use only 1 thread per core or even no threads at all. so,given 1 core and 2 threads, you will end up with 2 "processors" in windows task manager.
Multi-Core
having many cores. today's processors (6/2012) usually have at least 2 cores. 4 if they are decent.
1C or single-core
single is a math term meaning 1. 1 core. acts like 1 whole old-style processor.
2C or dual-core
dual is a math term meaning 2. 2 cores. acts like 2 whole old-style processors.
4C or quad-core
quad is a math term meaning 4. 4 cores.acts like 4 whole old-style processors.
6C or hexa-core
hexa is a math term meaning 6. 6 cores. acts like 6 whole old-style processors.
8C or octo-core
octo is a math term meaning 8. 8 cores. acts like 8 whole old-style processors.
10C or deca-core
deca or decade is a math term meaning 10. 10 cores. acts like 10 whole old-style processors.