Is there any end in sight to this multicore madness?
Apparently not, as Intel is now making the rounds with a prototype 48-core device that it bills as a veritable "single-chip cloud computer." The device is slated for a limited release next year, primarily to marquis developers and research organizations to see how such a large number of cores can be integrated and programmed for practical purposes. That could be a tall order considering the chip represents perhaps a 20-fold increase in performance over current Core processors. Still, it's the operational benefits that have pundits salivating, with Intel talking about massive data center scalability with minimal power consumption and even the possibility of a user interface powered by brain waves.
At first blush, it looked like Intel was scaling back its multicore program. Recall that two years ago the company was showing off an 80-core chip and hinting at future designs populated with several hundred cores. Nonetheless, this design represents a step forward for a couple of reasons. First, it's an x86 device, which puts it on the fast track to mainstream computing applications. Second, it's built on a 45 nm process that puts two cores on each tile, all tied together with a high-speed on-chip network, allowing each core to work individually or in pools depending on application needs. That's where the "single-chip cloud computer" claim comes from.
Still, it is somewhat disconcerting that the number of cores keeps going up exponentially -- commercially available state-of-the-art is only eight cores today -- at a time when software developers are still struggling to refine their programming languages to take advantage of the parallel processing capability that multicores provide. Google is hoping to move the ball forward on this front with Go, an open-source language that draws on 1960s-era communicating sequential processes (CSP) technology, but even backers admit it probably would only be useful for specialized applications.
For a window on truly effective multicore programming, we have to look at the high-performance computing space, where codes like CASTEP are using band-parallelism that can scale up to 1,000 cores, while NUMA (Non-Uniform Memory Access) is leveraging a new commercial C++ multicore programming library called QuickThread. But since these languages are designed for the massively parallel installations at big research institutions, it's questionable whether any of these advances will trickle down into the commercial space.
Still, software has a way of making the most of its hardware environment, and then some -- leading to a constant game of one-upmanship that has driven IT development for the past 30 years. So there is every reason to hope that before too long someone will unlock the key to commercial-scale parallel programming, if for no other reason than the enormous financial gain for whomever gets there first.