Some related info, I highlighted the parts relevant to why many early games failed to get enough out of the hardware:
Regarding Emergent's cross-platform Gamebryo Element engine:
"Given that we, like many other developers,
were faced with the problem of converting our mostly single-threaded engine to run well on the PS3, they started to research techniques for leveraging the SPUs on the PS3 while reducing the workload on programmers.
The presentation that they put together offered several proposals for how to implement various systems on SPUs. Those proposals evolved into a design that we later implemented during Gamebryo 2.3. Our goal was to put together a system that both simplified our internal development and allowed our licensees to easily parallelize their game logic. There are a few features from that presentation that we have not implemented yet, but the design comes largely from that presentation"
"Programming for Cell requires managing a different set of problems than the shared memory machines that most developers are used to using. You have to make sure your data fits into the local stores of the SPUs, and you need to get that data to those SPUs.
If you write a multithreaded engine for a multicore or PC, you will almost definitely have to
re-architect significant pieces to run well on the Cell architecture. They will run well if you invest enough development time though, theres certainly power in that chip."
http://www.gamasutra.com/php-bin/news_index.php?story=16924