PiNkY said:- the core problem (and where the scientific breakthroughs are requiered) will be compilers, as they need to extract parallel code out of (still mostly) inhearently sequential algorithms at least in the order of a magnitude higher then the current state of the art (guesstimate), otherwise i'd say about 90% of your execution resources will sit idle at a given time for GP-code (though DSP friendly stuff (such as Transform & Lightning) will be quite suited for such an architecture), if you want to challenge the traditional workstation marktet.
Quite a bit has been done on auto-parallellizing+vectorising compilers. As to how successful they are - well, YMMV. Auto-vectorization is relatively simple, whereas the auto-parallellization has been a thornier problem (generalising shamelessly). Graphics tasks, as you point out, will do just fine obviously. If the OS likes lightweight threads, it will be relatively simple to get good performance out of the parallell processors. If the problem is to get maximum performance for a particular thread however, I'd generally suspect that writing the parallell code "by hand" is the way to go. That's not necessarily all that hairy though. We'll see what kind of development tools they come up with. Or you will - I doubt I'll have the time to play around with it. :?
- interesting times are definitly ahead as this is the first time in two decades that someone deviates from the RISC way of engineering mpus on a broad economic scale. It remains to be seen how the real world performance relates to traditional consumer mpus, which will propably sport Gflop (as if they meant anything beyond marketing, though) numbers at least a magnitude lower than this in the low cost space. My guess though would be more or less equality for 2005, as massivly parallel architectures will be heavily dependant on advances in compilers/programming paradigms.
General purpose parallell computing (lets neglect systolic arrays and similar) has always had the drawback of greater number of physical chips and greater overall system complexity. System cost has never allowed that approach to contend for the mainstream. When you fit several processors onto a single chip however, that picture changes. Although it is difficult to reach a high degree of processor utilization on a multiprocessor, it is equally obvious that at some point, investing all the gates that finer lithography allows into making a single thread execute as fast as possible will not be optimal even for general purpose computing. Intels hyperthreading is an implicit confirmation that so much of their CPU resources are sitting unused even now, that it is easy to schedule in another thread to execute in parallell.
While "massivly parallel architectures will be heavily dependant on advances in compilers/programming paradigms" is certainly true, you have to remember that a four way design hardly qualifies as massively parallell these days. When we get beyond forty thousand, you have more of a case.
When parallell computing is more cost/performance efficient than PC level single processors for general computing is a difficult call to make. It depends too much on what code you want to run. The PC arena will probably be quite resistant to mainstream parallell processing for legacy/OS/liscensing reasons. But even there we are likely to see dual-on-a-chip designs within a few years at most, occupying the higher end of the PC cost spectrum at first. It would be a surprise to everyone if Intel had a multi-processor-on-a-chip ready for inclusion into a cheap console anytime soon though, and even when they do, they still have to design within the PC paradigm.
Yup, interesting times are definitely ahead.
I wonder how confined this technology will be to consoles, or to what extent IBM/Sony will use it to drive low cost wedges into other markets.
Entropy