I agree that this won't be solved overnight to
anyone's long-term satisfaction. Concurrency
is a hot topic in CS, and has been since the 80's
or before. So, in a sense, it has been the
subject of a generation's doctoral theses, and still, I would argue, it's not mature, and few
people would disagree. There have also been
some commerical failures, as in the 5th generation
computer project--which was not a failure in
terms of teaching us about what not to do.
I don't think this negates the usefulness of the cell processor though. In the worst case, ignoring the SPEs, you have a simple risc-based dual-threaded processor clocked up to about 4ghz, that's compatible with all the powerpc code. That means that there is a huge code-base that will work already with it. This may or may not be enough to make this a competative product.
There will, of-course, be sub-optimal usage of
the SPE's for the forseeable future with most
applications. This is not necessarily a bad
thing. What dedicated graphics has taught us
is that you can take certain processor intensive
tasks, and off-load them relatively cheaply
to dedicated chips. Even selective usage
of the SPE's could make a huge performance
difference on certain processor-intensive tasks.
What I see as the key feature of the cell
processor for 2006 is not its parallel
execution, but its I/O bandwidth. It's an
incremental, but very significant advance on the
real bottle-neck in modern processors: bandwidth.
Bandwidth should be reason enough to make Cell
successful until the tools for painless and
automatic compiling can be developed.