
Intel today revealed it can convert single threaded software to multithreaded mode
without any code modification. The new 'speculative parallel threading' process monitors software and examines whether its processes can be run in parallel. If they can execute succesfully, the software can be recompiled to run as a multithreaded app. Intel says it has realised that programmers are going to need machine help to get software running as multithreaded.
"We can't blame the programmers," an Intel spokesman said.
"The industry has been complaining for 30 years about how difficult parallel programming is."
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...