What is a supercomputer?
While most of the people today must have heard of the term supercomputer, few of us can actually claim to have seen one in real. I have seen large computers and very large computer room, they are impressive, but not even close to a supercomputer! Now that I’m going to be a real IBMer soon, I’d like to do my duty of evangelizing the world about some great IBM technologies.
IBM enters the field of supercomputing during the mid-90s, with the first successfully project called Deep Blue, which was able to beat world champion chess player Garry Kasparov at the 2nd year of competition, attracting huge media attention. That was 1997. Fast forward 10 years, IBM’s Blue Gene/L supercomputer series dominate, and by large, the list of Top500 fastest computers in the world, with 4 of the top 5 being held by IBM!
You may now ask, what does a supercomputer have to do with a game console? Actually, there is a similar technology and a common problem behind IBM’s BlueGene/L supercomputer and Sony’s PlayStation 3 console. In fact the PS3 could have been listed quite high in the Top500 list if we were at 1997, it is a supercomputer by pre-Y2k’s standard, now shrinked into a tiny microprocessor chip with 9 processing cores within it. The microprocessor inside PS3 is called Cell Broadband Engine Processor, it was jointly developed by IBM, Toshiba and Sony over 3 years of hard work by a team of 500 people. It is based on a scale down version of IBM POWER microarchitecture used in many IBM commercial machines as well as their supercomputers. The difference is that in the PS3 there are 9 processing cores, while in BlueGene/L there are 131,072 processors, and still growing! But PS3 is essentially based on a mini-supercomputer architecture.
|
|
|
|
So, what problem do they have in common? Actually, writing efficient multi-tasking programs for these machines are quite difficult. Traditional computer science education provided by mainstream universities do not provide opportunities for students to practice multitasking programing on large computer, they only learned the theory about parallel programing, and that’s not even the norm…
The problem is if we take a typical software program today and run it on the PS3 or the BlueGene, it will only consume one processor, or two at most, all the other processors will not have work assigned to them and will simply sit idle. To explain this problem in layman’s terms, let’s compare these programing methods to the ways a chef might prepare a meal**:
- In the John von Neumann approach, the chef (program) runs to the store (memory) each time he needs an ingredient (loads data). This doesn’t present a big problem because the market (cache/memory) is right next door.
- In the multi-core Cell paradigm, the chef is a trailblazer. He lives in a villa and the closest market is in the next town. However, seven highly-skilled assistants (special processing cores) live with him, and they are ready to pitch in. The chef divides the tasks among the assistants (special processing cores). They each return a shopping list to him. Before the tasks begin, he travels to the next town (memory) and collects the ingredients. When he returns with the goods (data moves from a global address space to the special processing cores), everyone works together on their individual tasks (parallel processing), and sometimes two or more assistants divide up a task (overlapping instruction execution) to work more efficiently.
** I actually copy this metaphor from somebody else, hope he doesn’t mind…
|
|
|
|
That was for the Cell processor, imagine how much more complex it is to write programs for the BlueGene/L with over 130,000 processors! So now we have a highly capable machine that can do all kinds of things, but doesn’t know how to do it on its own, we humans, smarter but far less capable, have to teach it how to do things the most efficiently possible. It would be really fun if one day these supercomputers can write programs on their own, or write some games for us to play…