Programmers grappling with the Cell chip--the processor behind the Playstation 3 and some high-definition TVs--can get a helping hand from IBM's new project: the Octopiler.
It isn't easy to write code for Cell, with its central processing core and eight accompanying special-purpose engines. Octopiler, which IBM Research plans to outline at a tutorial next month, aims to change all that. The software development tool converts a single, human-written program into several different programs that run simultaneously on Cell's various cores.
"Programming Cell is relatively hard," said Illuminata analyst Gordon Haff, in particular because development tools must must divide software into threads running among different cores and keep those programs synchronized as they run. "Certainly a higher-level, more abstracted model makes programming a lot easier."
By automating otherwise difficult, manual aspects of programming, the Octopiler could help enable wider use ofand plan to begin selling this year.
The Cell Broadband Engine (the chip's formal name) was developed by IBM, Sony and Toshiba. It's an unusual design geared for Sony's Playstation 3 game console and sophisticated Toshiba high-definition televisions. But the multicore design that makes Cell well-adapted to simulating videogame physics also means it can be good for technical computing. That's why IBM and Mercury are developing Cell-based systems for tasks such as 3D medical imaging or radar signal processing.
Each Cell chip has a straightforward PowerPC 970-like processing core, called the Power processor element (PPE), that can run Linux and other readily available software. What makes Cell unusual--and hard to program--are the eight accompanying synergistic processing elements (SPEs). Each of these special-purpose engines can run carefully crafted programs and has its own connection to memory and to the other cores on the Cell chip.
Recognizing the challenge, IBM pledged in 2004 that International Symposium on Code Generation and Optimization in New York.. Some direct help is coming in March, when IBM researchers involved in the effort plan to share details at a tutorial at the
"Expert programmers can develop and hand-tune applications to exploit the full performance potential of this machine," according to an abstract for the presentation. "We believe that sophisticated compiler optimization technology can bridge the gap between usability and performance."
Mercury also is trying to address the situation, announcing last week that it's now offering Cell programming training classes. "The programming approach for the Cell BE processor is a different paradigm for many software developers," Mercury Chief Technology Officer Craig Lund said in a statement.
A compiler such as Octopiler is a development tool that translates a programmer's source code into machine language the chip can understand. The name Octopiler refers to the ability to control how software uses Cell's eight special-purpose engines.
Compilers are a crucial element in shielding programmers from complexity and in extracting maximum performance from hardware, and new chip designs mean compilers must adapt. "Growth in processor complexity is driving a parallel need for sophisticated compiler technology," said Alexandre Eichenberger and several other IBM researchers in a Cell compiler paper.
Octopiler has more work to do than most compilers. For one thing, it must create instructions in a different language for the eight SPEs than for the PowerPC core. For another, it must divvy up software among the nine cores and govern how those programs communicate and share memory.
And it has to scrutinize source code for the specific "single instruction, multiple data" tasks that SPEs can perform. Those tasks economize chip operations by performing the same operation on multiple data elements in one fell swoop.
Adventurous programmers can get started now, even without a Cell computer.
IBM in November released a version of Octopiler on its AlphaWorks site for developers interested in early release technology. The software, a modified version of IBM's XL compiler, runs on 64-bit x86 computers using .
Developers who want to use the Cell version of XL must obtain a Cell-specific modification to the widely used Barcelona Supercomputing Center.compiler from the