The Cell

SteveB recently installed a distributed computing client on his Playstation3 and earlier today shared this wonderful story with me:

The Folding@Home project…uses software programs to simulate the way proteins change shape – the way they fold – within the human body. Correct folding is necessary for proteins to perform their many functions, such as carrying oxygen from lungs, while misfolding can lead to conditions such as Alzheimer’s.

The complex software simulations… require so much computer time that some segments of research can’t be completed within a graduate student’s years at the university. But when the simulations can be downloaded to a PS3, the speed of the research will be multiplied, depending on how many people participate. Pande expects, for example, to shorten the time for some simulations from a year to two weeks.

“It’s a big deal,” said Pande. “Even starting small, the PS3 means a dramatic increase.”

Here’s one scenario: Sony says there are about 1 million PS3 owners in the United States and Canada. If just 10,000 of them (1 percent) download the simulations and run them to completion, the project estimates it will double the computing help it already gets from personal computers around the globe. – San Jose Mercury News

The client for running Folding@Home was released earlier this week and holy crap!

OS Type Current TFLOPS* Active CPUs Total CPUs
Windows 151 159144 1624849
Mac OS X/PowerPC 7 8713 95337
Mac OS X/Intel 7 2716 7204
Linux 35 24959 215690
GPU 41 697 2185
PLAYSTATION®3 346 14138 15079
Total 587 210367 1960344

Folding@Home Client Stats

Yes, you heard me correctly. It was just released earlier this week! Already PS3’s are providing more than twice the processing power of Windows PCs. How is this possible, you might ask, when there are far less active Sony PS3 CPUs? I won’t claim to know a whole lot about the Cell’s CPU arch, which is what powers the Sony PS3. I haven’t taken the time to read up on it, but I have a basic understanding after a quick read. The Cell is really designed to allow CPUs to federate to work cooperatively and share processing, it’s all about distributing processing. Partially this is achieved by processing being sent to hardware cells in the form of software cells that consist of data and programs (known as jobs or apulets). The processing is completed without caching. In the case of the PS3 the Cell consists of a PowerPC chip, which plays the role of the Power Processor Element (PPE) a kind of master CPU and eight Synergistic Processor Elements (SPE) that act as slave processors. Each SPE has a 256 Kbyte “local stores”. These are like are like cache because they are on-chip memory, but behave more like CPU registers. The local stores access main memory in blocks of 1Kb minimum (16Kb maximum), but the SPEs can only operate on local stores and not directly on main memory. This approach is a means of minimizing contention and complexity in order to facilitate distribution of processing and scaling (adding more "cells"). As usual, everything old is new again. A similar architecture was employed with the Cray 2 in 1985, what’s new is 21 years of Moore’s law and how bloody cheap chips are now.

The Cell will almost certainly find its way into a variety of devices, such as PDAs and other consumer goods. Imagine for a moment what this means. We’ll be able to create very powerful distributed computing arrays. My PDA will be capable of supercomputing processing power by distributing. Also think about what the PS3 is going to do for number crunching with projects like Folding@Home. Very, very cool stuff. This is going to dramatically change things. It is important to note that programming to a system that employs an architecture like the Cell is pretty hard. We need an abstraction to improve this. This is actually what I was recruited to help work on at Microsoft back in 2003 when I met SteveB. I surely don’t claim to be an adept on this topic, but SteveB surely is.