The key to getting more computing power at a modest price is to operate several machines in parallel. The implementation of choice is traditionally a cluster of Linux PCs ("Beowulf").
However, the requirements of TERAPIX for massive data processing are quite different from those of programs that make explicit use of parallel code like numerical simulations, where low latency is of utter importance, and CPU time exceeds by a large factor time spent in data transfers.
In our case, latencies are not an issue, because data are always transfered in large chunks (several Megabytes), and the pipeline parallelism is very coarse-grained. What is important is to have as much aggregate bandwidth as possible between storage areas and the processors.
This is why both computing power (the CPUs) and mass storage (the disks) are distributed in the Terapix cluster.