Hardware overview
Software overview

Hardware overview

Case: Lian-Li PC-P80 Armorsuit

Lian-Li PC-P80 Armorsuit

An essential requirement for the case is that it must have at least eight expansion slots, two for each dual-slot graphics card. Nearly all PC cases have at most seven expansion slots, leaving the Lian-Li PC-P80 and Thermaltake Armor as the only options we could find. Both are excellent choices: we opted for the Lian-Li case mainly for availability reasons.

Motherboard: MSI K9A2 Platinum

MSI K9A2 Platinum

We searched for a motherboard that has four physical PCI-Expressx16 slots and has double spacing between each of them. There are several boards in the market with four graphics card slots, but we could find only two that have the required double slot spacing: the MSI Quad Royal, which is now outdated and hardly available anymore, and the MSI K9A2 Platinum. We originally intended to choose a platform suitable for an Intel processor, either Skulltrail or NVIDIA 790i, but none of the available motherboards satisfied the slot requirements. Ultimately, we decided to go for an AMD chipset, as CPU performance is not a major concern in our case anyway. Note that the K9A2 motherboard has a very modest price tag and lacks several features found on more expensive motherboards.

CPU: AMD Phenom 9850

AMD Phenom 9850

A quad-core CPU is essential in our system, as there is continuous communication going on between the CPU and GPUs. Spreading these tasks among several processor cores reduces latencies and improves the overall computation speed. We opted for the new Phenom 9850 CPU, which does not have the TLB bug that originally plagued AMD's quad-core product line.

CPU cooler: Scythe infinity

Scythe infinity

This CPU cooler provides more than enough cooling for the CPU. Since we are not overclocking the CPU, any decent cooler would have done the job.

Memory: 4x 2GB Corsair TWINX DDR2 PC6400

4x 2GB Corsair TWINX DDR2 PC6400

Having as much RAM as possible is crucial for our type of applications. 8GB is usually sufficient to load large 3D volumes (e.g. 1024x1024x1024) completely in memory. We would have loved more memory though. Compared to a “real” supercomputer we have only a tiny amount of memory at our disposal. The Corsair memory has decent timings, at an affordable price point.

Harddisk: Samsung Spinpoint F1 750GB

Samsung Spinpoint F1 750GB

At first this choice may seem somewhat strange. The Spinpoint harddrive is not very fast compared to more expensive models such as the WD Raptors. However, we observed that in our case, disk access is not a performance bottleneck at all. In particular, having a single harddisk improves the airflow through the case and keeps the system very tidy.

Power Supply: Thermaltake Toughpower 1500W Modular PSU

Thermaltake Toughpower 1500W Modular PSU

The Thermaltake Toughpower was the only PSU we could find that has the necessary four PCI-Express x6 and four PCI-Express x8 connectors. An alternative would have been to go for several smaller PSUs, but this modular PSU keeps the system extremely tidy. It turns out to be more than capable of powering four dual graphics cards simultaneously, even after overclocking the shader cores on all eight GPUs by 20%.

Graphics Cards: 4x MSI 9800GX2

MSI 9800GX2

There is no dominating reason to choose MSI over competing brands for the graphics cards. We obtained a good offer from MSI for these graphics cards and decided to take it. In particular, this seemed to be a sensible choice in case we needed support, as we are also using an MSI motherboard.

Software overview

We selected Windows XP-64 as the operating system for FASTRA. There were three reasons for choosing this platform: first, we needed a 64-bit operating system, in order to utilize 8GB of RAM. Second, we expected fewer driver issues on Windows compared to Linux. Third, within the Windows product line, Windows Vista is not yet supported by the NVIDIA GPU Computing platform, leaving Windows XP as the only choice. For development, we use Microsoft Visual Studio 2008. The core functionality for our CPU code is written in C++ (Visual C++), while MATLAB is often used as a front-end for rapid prototyping. All GPU code is developed using the NVIDIA CUDA framework, a C-like programming language that allows for efficient programming of the NVIDIA GPUs.