Any Way You Want


Sometimes computer scientists get carried away making shiny new things and we forget that these things will eventually need to be used by human beings. My favorite story along these lines came from an invited conference talk by an architect of the cell processor, which was shiny and new at the time — this was around 2005. As a bit of background for those who aren’t familiar with the cell processor, it had a PowerPC core surrounded by eight powerful but specialized coprocessors. The peak performance was (at the time) quite high and the talk included a nice demo where the cell did a real-time rendering job that would have been difficult or impossible on a conventional processor. Anyhow, after the talk there was a question and answer period. Someone raised his hand and asked “How should we program a cell processor?” The speaker looked a bit taken aback and replied “Any way you want!”


4 responses to “Any Way You Want”

  1. I think computer scientists/engineers in academia have a pretty good excuse for creating platforms which are hard to program, as long as they can show a significant performance increase over platforms which are easier to program. This serves as a goal that we can try to achieve using more easily programmable platforms. However, if you operate in a commercial setting the rules are different (if you want your product to survive).

    By the way, have you read the book “Race for a New Game Machine: Creating the Chips Inside the XBox 360 and the Playstation 3”? This book contains a lot of fascinating information about the creation of the Cell processor.

  2. Hi Andreas, I agree that there’s no inherent problem with difficult platforms. For example, RISC and VLIW both came out of the idea that smart compilers would make up for difficult architectures. The aspect of this Cell story that I found to be humorous was the deadpan delivery of the punchline.

    I haven’t seen that book, thanks for the reference!

  3. VLIW machines were (and still are) certainly difficult for compilers, but I don’t think that ever applied to RISC machines. Indeed, my impression (as a non-compiler-writer who read a lot of compiler papers back in the 1980s) was that RISC machines were seen as *easier* compiler targets than CISC machines, because for RISC the compiler writer didn’t have to worry about a lot of CISC tradoffs (e.g. fancy addressing modes).