When it comes to writing computer software, there is a huge difference between “multi” and “many.” Mere humans can write good software for the current breed of multicore processors that have two to four processing units inside a single chip, although this still requires extra skill and patience. The next step is many-core processors with sixteen to hundreds of cores–too many for any programmer to efficiently command.
That’s why later this year, Intel will release from its lab a research project called Ct (“C for Throughput”) that will automatically make standard C and C++ compilers work with many-core processors, starting with Intel’s first new graphics processor in many years, code-named Larrabee, which is scheduled to ship in early 2010.
Ct, which will be part of Intel’s Parallel Studio software-development tool kit and may have a different name by its ship date, is all about the company’s new orientation toward energy efficiency. “We’re investing the power budget into features people want to use,” explains an Intel engineer who is not authorized to speak for the company, “so we’ll have these ‘eight-wide’ and ‘sixteen-wide’ chips, but without a tool like Ct we’d be leaving three-fourths or seven-eighths or fifteen-sixteenths of that performance potential on the floor, unused. Nobody wants that.”
Embracing parallelism in software has traditionally required programmers to, first, figure out which parts of their code were most easily adaptable to parallel processing, then isolate those parts in a module. But whether the language was C# or Java, the job of isolating and applying parallel code would have to begin again for each new processor family or with a large increase in numbers of cores. Ct, according to Intel, makes all that automatic, and optimizing for many-core processors of the future won’t even require a recompile.
Unlike competing programming architectures such as nVidia’s CUDA, which enable massive parallelism using large numbers of that company’s graphics processors, Ct is backward compatible with the entire body of software written for Intel’s long-running x86 architecture. So presumably, if you want to run your circa-1982 copy of Lotus 1-2-3 efficiently across an eight-core (or higher) processor, Ct could make that. According to the company, Ct isx86-specific, not Intel-specific, so the code will work equally well on processors from Intel’s arch competitor, AMD.