It doesn't seem that long ago that multicore was the purview of research labs and high-performance systems. But these days, you can't walk out the door without tripping over multicore this or multithreaded that. Not that there's anything wrong with this. In fact, it's a good thing.
Take Stanford University's Folding@home distributed computing project (folding.stanford.edu), for instance. The project doubled its compute capacity by exercising the under-utilized capabilities of hundreds of thousands of Cell multicore processors, putting the project well on its way to petaFLOP performance. (Recall that a petaFLOP is 1000 TFLOPs, and a TFLOP is 1000 gigaFLOPs, and a GFLOP is 1000 megaFLOPs, and an MFLOP is 1 million FLOPs... You get the idea.) In any event, the total compute power of the Folding@ home system is now at around 700 TFLOPs. Impressive, eh? But what's even cooler is that the system platform the Cell processors are running on is the PlayStation3. In total, approximately 250,000 PlayStation3 consoles are contributing about 400 TFLOPs of compute power, making it the number one compute-resource contributor to Folding@homemore than doubling that from Windows-based PCs.
What kind of problems are the PS3s tackling? For the most part, the game consoles are running "implicit solvation calculations," such as sigmoidal dependent dielectric and AGBNP, a type of Generalized Born method under investigation at Rutgers University (levygroup.rutgers.edu/pdf/JCTC_3_256-277_2007.pdf). What Folding@home researchers/developers like about the Cell is that it combines the speed of Graphic Processing Units (GPUs) with the flexibility of general-purpose CPUs.
But I digress: This is supposed to be about multicore, not PlayStation3.
So what are other universities doing in terms of multicore development? Well, MIT's Department of Electrical Engineering and Computer Science has completed a course on parallel programming, again focusing on the Cell processor and using the IBM Cell SDK (www.alphaworks.ibm.com/tech/cellsw). To pass the course, students had to design and implement concurrent applications that ran directly on PlayStation3 consoles (cag.csail.mit.edu/ps3).
"The fact that studentswith no background in parallel programming or the Cell Broadband Enginewere able to get their projects done from scratch in just about one month largely goes to show the capability and determination of our students, coupled with the availability of a robust toolchain for Cell development," said MIT professor Saman Amarasinghe, who taught the class. That at least one student project involved (you guessed it) games is secondary, of course.
Okay, from what I can tell, students at U.S. universities are having way too much fun. By comparison, students at the Budapest Polytechnic Institution seem more inclined to keep their nose to the computer-science grindstone. Yes, they will have the opportunity to take a class on parallel programming. And yes, they will also study software development for the Cell processor. But there's not talk of the PlayStation3, at least, none that anyone has yet to 'fess up to.
In addition to using the Cell processor as the basis for studying parallel programming, Budapest Tech is collaborating with the Cell Analysis Lab of Semmelweis University (www.sote.hu) and 3DHISTECH (www .3dhistech.com), a digital-slide-scanning hardware/ software company, to explore how the Cell processor can speed up the process of digitizing histological, cytological, and fluorescent slides of patient data. Each file size can range from 100-150 MB per slide, with up to 300 slides needing to be digitized each day.
Don't start thinking that Cell is the only multicore processor out there that university students are playing with. Intel, for instance, not only has a parallel-programming program in place for students in China, but the company recently expanded its Multi-Core University program to 37 universities with the goal of reaching 235 universities throughout Asia by 2008 and in over 400 universities worldwide.
To further promote parallel programming in China, Intel also launched a multicore-programming contest. In his spare time, for instance, Jiang Li, one of three winners in the Best Optimization category, likes to program computers and play computer games. Hou Sisong, another winner in the same category, works in game development (sigh), and is interested in new algorithms, graphics and image processing, and (you guessed it) game engines. Okay, as the third winner in Best Optimization, Liang Ji hasn't explicitly mentioned games and multicore in concert, but he has that fun-loving look in his eyes.
Whatever name it is going bymulticore, multithreading, parallelization, multiprocessors, and the likeconcurrency is here to stay. The fact that it is being implemented for some phenomenal gains in such a wide range of applications speaks for itself. And the real fun is yet to come.