For what looked like a relatively straightforward problem for multicore processor technology, the issue of multithreading applications has proven to be much tougher than many people realized.
The hang-up occurs when single-threaded applications, those that funnel data to the processor in a linear rather than parallel fashion, encounter a multicore chip. The idea behind multicore is that once you hit the heat generation limit by upping processor speed, the only way to boost performance is to place multiple slower cores on a single chip. That's fine for an application that can separate data traffic into multiple streams, or threads, but for single-threaded apps, the end result is that they can only take advantage of one slower processor at a time.
At the moment, state-of-the-art multicore technology centers around two, four or even eight cores, so the issue is only a minor convenience. But with Intel and AMD on the verge of introducing dozens, if not hundreds, of cores on a single chip, the question of whether this can be considered advancement becomes very prominent indeed.
That's why you're seeing the chip makers going to great lengths to help the software industry adapt to the new silicon environment. Intel, to its credit, has been out in front of this issue for several years, lending it expertise to numerous professional software groups to help find a workable solution.
But while the going has been slow, some recent developments indicate we might be on the verge of a breakthrough. First up is the close collaboration that has taken place between Intel and Microsoft on the new Windows 7 operating system. The platform has a feature called SMT parking that will help applications separate data-intensive tasks like video encoding and image filtering across multiple threads. There's still a question as to whether other applications will be able to take advantage of SMT, but it's a good bet that the software industry will come up with something before too long.
Intel is also taking a bigger stake in the software development side. The company recently acquired a company called Cilk Arts, developer of the multicore-friendly Cilk++ language. Cilk++ works across multiple platforms and provides a range of parallel extensions for system compilers, plus a multicore-enabled runtime system, that provides a robust environment for development, testing and deployment of multicore applications. The plan is to fold the technology into Intel's existing parallel development toolkit, the Intel Parallel Studio.
Intel is also hoping to bridge the current state of single-thread applications across multicore environments through a technique called Turbo Boost. The idea is to allow individual cores to up their clock speeds when needed to maintain performance. To get it to work, however, the operating system will have to signal the processor that more performance is required, but it will only kick in so long as power and heat envelopes are not exceeded.
Multicore development is also set to get a boost from Uncle Sam. This year, the National Science Foundation is on track to spend upwards of $800 million on computer science research, much of it focused on multicore technology. That figure includes $235 million from the federal stimulus package approved by Congress and signed by the president last spring. It is expected that much of the research will focus on the software that falls outside the usual commercial applications like databases, search and graphics to more esoteric fields that may not have an immediate commercial impact.
Regardless, any breakthrough in multicore software development is likely to have a major impact across the entire computer industry. In an age where single-core systems are rapidly becoming a rarity, the sooner we figure out how best to take advantage of multiple cores, the better off we'll be.