Linked by Thom Holwerda on Tue 1st Apr 2008 15:52 UTC, submitted by Dan Warne
Thread beginning with comment 307608
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
RE: Multithreading vs. Multicore
by flanque on Tue 1st Apr 2008 20:35
in reply to "Multithreading vs. Multicore"
RE: Multithreading vs. Multicore
by kkenn on Wed 2nd Apr 2008 13:15
in reply to "Multithreading vs. Multicore"
It's not primarily about desktop machines, it's about servers. Sun is already selling relatively cheap 64 CPU-thread systems, and progress in CPU engineering has been moving in the "double the number of cores, not the clock speed" direction for several years already. In a few years servers will routinely have dozens of CPU cores (or virtual CPUs, as in hyperthreading), and that means the software needs to be ready.
Desktop machines will be following a couple of years behind on that curve, but the trend is coming there too.





Member since:
2006-04-14
Well, most large-scale parallel processing has and will probably continue to be run on specialized hardware designed specifically for such tasks. An obvious example of such specialized hardware is the GPU.
I am shaking my head a little at this so-called crisis. I can see where this issue might become a serious concern once general purpose CPUs with 10s or 100s of cores come out. However, mainstream CPUs that are most in use today have at most only 4 cores.
Sure, we want to ensure that the total computing workload on a system is spread evenly across these cores. One way to achieve this is by running certain applications that are designed to run in multiple threads, based on what it senses are the capabilities (i.e. number of cores) on the CPU it is running on. Some high-end workstation applications and games can do this. But we find more of this capability on servers, which are running DBs, Web servers, etc. many of which are designed from ground up to spread their workload across multiple cores.
But getting back to the desktop, look at what most folks are running on them. Windows (XP or Vista), Linux, *BSD, etc. Each of these OSs has multiple background tasks and daemons loaded all the time, each of which need CPU time when they need to execute. A multicore-aware OS (like the above named) can allow these tasks to run truly simultaneously (depending on how many are scheduled for execution at any one time and the number of available cores) instead of having to time-slice each one on a single core. This allows for a smoother experience when doing things like simultaneously downloading/uploading a torrent, burning a DVD and playing a foreground game. OS specific tasks also can run in parallel. I am sure many of the readers of this thread recall the random, unexplained periods of unresponsiveness on WinXP using a single core system. These pretty much went away when upgrading to a multicore (dual or quad) system, didn't they?
So anyways, I can see that there will be a problem fully utilizing a 50-core CPU on a typical desktop system. But isn't 4 cores enough, at least for the next 5 years? I guess we will have to wait and see...