I've been saying for a while that I want a supercomputer. The data analysis I've been doing has so far been okay on my main work computer, but it could be seriously improved. For my pre-dissertation work, some hierarchical data analysis took as much as 30 hours to complete. With that kind of time, it becomes difficult to put a lot of effort into making improving the model.
GPUs
It turns out there are several ways to get a 'supercomputer' for not that much money. One interesting way is to use the floating point capabilities of graphics cards for scientific floating point operations. This is the idea behind NVIDIA
Tesla device that advertises itself as a supercomputer that goes in a PCI express slot. I believe the card retails at about $1,500, but that will likely come down soon. I'm not sure if it's possible to use a regular graphics card for a similar purpose. But NVIDIA sells graphics cards that cost up to
$2,400. This implies to me that the cost of the Tesla is just due to the fact that it's a relatively high-end video card, not that its use as a supercomputer has increased the cost.
Playstation 3
Another possibility is to use a cluster of Playstation 3s. I remember when the Playstation II was introduced, several countries were banned from buying them because they could be connected to control military weaponry. I thought this was a joke at the time, but it turns out that game consoles have a ridiculous amount of power. Because of heavy competition and economies of scale, the power comes at a price that's quite difficult to beat. The result is an powerful off-the-shelf computer for under $700.
In the case of the Playstation 3, the secret to its usefulness is the new
cell chip jointly developed by Sony, Toshiba, and IBM. The cell (a relative of the PowerPC chips from older macs) is a vector processing beast making it ideal for media (hence the PS3) and also potentially for scientific computation.There's a cool paper on using
Playstation 3 consoles for supercomputing [in pdf form]. The paper indicates that the PS3 cell chips are crippled in some ways and that the hardware speeds single-precision floating point operations but not double-precision ones. Double precision operations are the more important for science. You can get much more performance by combining precisions according to the paper, but I'm not sure how to do that. At any rate, the next line of cell chips will have hardware support for double-precision operations, which suggests that I shouldn't invest in a cluster of PS3s right now.
Simple Cluster
Another possibility is simply to add another motherboard or two to my existing computer. An 8-core cluster can be built for under $1,300 (see
microwulf). If I add my current motherboard to that, I'd have a 10-core cluster. The performance seems much less than that of either the GPU approach or the PS3 approach, but there is probably less need to convert everything to single-precision. The microwulf gets performance of about 26 gigaflops (billion floating point operations per second), whereas a PS3 gets 14 gigaflops of double-precision performance. With the mixed precision, one PS3 can get up to 155 gigaflops for a double-precision matrix. Since one PS3 is less than half the cost of a microwulf, it seems like a better idea just to get two PS3s and add them to my current computer.
Conclusion
I'm still not sure what I'm going to end up doing. The GPU idea is neat, but from my understanding you can only do single-precision calculations on them. If I need to do mixed precision to take advantage of either the GPU or the Playstation, then the GPU seems slightly better. The Tesla claims it can do up to 500 gigaflops, which beats the PS3's 155. There are a lot of resources out there and I only just now found out about all this, so it's going to take me some time to decide on exactly what kind of supercomputer I want.