Design Article

Using open-source GNU, Eclipse & Linux to develop multicore Cell apps: Part 1

Matthew Scarpino

8/24/2009 1:44 PM EDT

In August, 2006 I attended the Girvan Workshop for the Cell Broadband Engine and it's an experience I'll never forget. For two solid days, IBM engineers explained the processor's architecture, tools and the many software libraries available for building Cell applications.

I was stunned, not only by the processor's extraordinary capabilities, but also by how much there was to learn: spulets and CESOF files, Altivec and Single instruction, Multiple Data (SIMD) math, debuggers and simulators. I did my best to comprehend it all, but most of the material flew over my head in a fierce whoosh.

When Sony released the Playstation 3, I grabbed the first console off the shelf and ran home for a more thorough investigation. It was daunting at first. Then, as now, IBM's Software Development Kit provided a vast number of documents that covered three essential subjects: development tools, software libraries and the processor itself, The docs were helpful, but there was no overlap or coordination between them. This is a serious problem because any practical Cell developer needs to understand these subjects an an integrated whole.

It took time before the whooshing sound dissipated, but when it did, I genuinely understood how to program the Cell's PowerPC Processor Unit (PPU) and Synergistic Processor Units.

It wasn't that hard, really " just regular C/C++ and a set of communications mechanisms. Yet the blogs and discussion groups disagreed: to them Cell programming was much too complex for normal developers to understand. However, they hadn't really given the Cell a chance; they saw the disjointed pieces, but not how they fit together.

Programming the Cell Processor is my best attempt to reduce the whoosh associated with Cell development. My goal is to tie together the Cell's tools, architecture and libraries in a straightforward progression that appeals to intuition. And I've included many code examples so that you can follow the material in a hands-on fashion. To download the examples, go to http://informit.com/title.

Editor's Note: Reproduced by permission of the book's publisher, Pearson Education, Inc., this series of five articles describes how developers can use a collection of open source GCC development tools, the Linux operating system and the Eclipse IDE to do development on the Cell multicore architecture. Part 1 starts on the next page, and describes the basics of the Cell Processor architecture, introducing the developer briefly to the Cell Software Development Kit. Part 2 is on Building Applications for the Cell processor; Part 3 covers debugging the Cell processor; Part 4 covers simulating applications and Part 5 is about the Cell SDK IDE, including Eclipse and the C/C++ development tooling as well as detailing how to manage an SPU project with the Cell IDE.


Next:




CLRobin

8/26/2009 10:25 AM EDT

What does this mean, from page 2, paragraph 5?
"The XDR interface can system memory. The PowerPC Processor Element (PPE)."

Sign in to Reply



DKC

3/25/2010 1:48 PM EDT

I went to a presentation on the Cell processor at IBM ~ three years ago. I quite liked the concept, but it was fairly obvious that IBM had not bothered to come up with a sensible way of programming it. This seems to be a problem with hardware/processor designers in general: they design nice hardware, but forget that writing applications and compilers is a non-trivial exercise.

The Cell architecture motivated me (more than other processors) to put more effort into my own open-source project to extend C++ to support programming paradigms that fit better with heterogeneous processing architectures and distributed memory machines - to be found at -

http://parallel.cc

- The basic premise is that you should write your apps using a hardware design-like approach with lots of threads and let the compilers do the work of fitting it to your hardware. The approach is portable so you are not tied to specific hardware.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

Feedback Form