Although all arguments and information I brought forward in discussions here at VGChartz, IMO nice to read something from IBM specialists themselves:
A snip:
"
Are there any differences between developing for a new multi-core environment compared to the traditional multiple CPU environment? What are the consequences of this?
Yes, new multi-cores such as Cell/BE have actually been architected from the ground out to be multi-core and many-core. For example Cell/BE has an internal communications ring that provides >300GBps of bandwidth to the cores at the current clock speed. It also has mechanisms for reserving that bandwidth for cores, and communications mechanisms in place. In contrast, most of the traditional multiple core CPU's lack these kinds of mechanisms, and some of them even require communications to hit their front side bus to communicate between cores (which ties up a precious resource).
Additionally, newer architectures designed from the ground up to be multi-core and many-core take a further step forward in partitioning what runs where. For example, traditional cores have the OS running across all their cores. This introduces "jitter" in the programs since the OS always wins the battle for cycles or resources against a user program. That jitter can cause inconsistent performance results from run to run, and make things very difficult to debug. By contrast Cell/BE only runs the OS on the Power Processing Unit (PPU), and only user codes run on the Synergetic Processing Units (SPU's). That is to say, the additional cores are dedicated to running only User mode apps, not the OS. This reduces complexity, helps reduce jitter, and gives much more deterministic results per run. In addition to great performance at a lower power footprint, many people find it much easier to debug as well. For both traditional and new, the same rules of thumb apply by the way -- reduce synchronisation and dependencies, reduce inter-core communications, partition the data. We find that all things a programmer does to make the new cores like Cell/BE go faster also speed traditional processors up as well -- just not as much since most of them were retro fitted for multi-core."











