by Brian Ensink
9. October 2008 01:18
Multi-core processors are here today and the number of cores will certainly grow in the future. In years past each generation of processor had only a single core but was faster than the previous generation. Today however each generation is adding additional cores to gain a similar increase in computing power over the previous generation. As goes hardware, so must software and developers need to write applications to take advantage of multiple cores.
It isn't just enough to write software with multiple explicit threads, perhaps a background thread for heavy lifting and a foreground thread for UI. This is called structured multi-threading and it doesn't scale with the number of cores. It might be snappy on today's dual core systems but perhaps 10 years from now -- well within an applications life time -- perhaps 32 or 64 core machines will be common. That software will still be using only 2 cores and from a users point of view would actually be slower than a competitors application that can make use of all those additional cores. This is just one of many challenges to multi-threaded programming.
The October 2008 issue of MSDN Magazine is dedicated to parallelism and multi-threaded programming and worth reading.