XBOX Linux Cluster

For more pics click here.

Stats:

3 XBOXes
Mandrake 9
MPICH
distcc

Quick Overview:

I was walking back from class thinking to myself I haven't done much in the way of parallel computing lately. So I thought it would be a interesting idea to test the usefulness of the XBOX platform as a cluster node, as the XBOX Linux project says they are useful as. At the same time I had heard a lot on various message boards that individuals were using the XBOX as a Linux desktop to check email and browse the web, etc, etc. So, I wrote a grant proposal to Saint Vincent College asking for funds to build a Linux cluster out of XBOXes. I was issued enough funds to purchase 3 units and accompanying hardware for the project.

Parts

After ordering all the neccessary components and a stop to the local Best Buy. I had all the necessary parts to built this cluster.
3 XBOXes
3 Matrix Mod Chips
1 VGA Switch
1 USB Keyboard
1 USB Mouse
1 USB Motherboard Card

Install

Dissambly was simple the Xbox has a standard set of screws that are revealed by pealing away various stickers and rubber feet. My first step was to flash the mod chips, as they came without a BIOS. After some digging on the web it became clear that the only place I was going to find BIOSes were from irc channels, where they were more than happy to hand them out. The programer that came with the Matrix mod chips was easy enough to use. I simply had to choose my BIOS file, and the program wrote and verified it for me. (Update 10/04/04) This step is no longer valid as several project have found hacks in various games that allow you to install linux without the use of a modchip. As well there is now a mod chip on the market that has its own firm ware written from the ground up.


The alignment of the chips on the board took sometime, however compared to earlier chips that required 29 wires be soldered to the motherboard this was the only viable solution if the XBOX was to be considered as a replacement for a store PC. The next step was to get Linux onto the XBOX. I used the ISO images boot and install from the XBOX Linux projects web site. Most people on the web had luck with cdrws instead of cdrs and cdrw's worked just fine for me.



Installing Mandrake Linux was the next step. The install disk simply wrote the image over the disk and only took about 15 mins to do so. The only problem was that all three units came with different size hard drives. The hard drive units were not clearly marked to their size, and I ended up pulling out my calculator to calculate each disks size.



After swapping disks the Mandrake partition started right up with no problems. I had no trouble using the XBOX as a standard desktop PC after the install. Nor did anything for day to day computing seem missing. Seems if you can get this up and running its fairly easy to use PC after.

Clustering


The clustering of the XBOX units would not go as easily. I wanted to be able to remote admin the XBOXes and the MPICH package needed ssh to pass commands and I was not about to use rsh. After downloading the sshd source from openssh.org, I found my next big missing piece. Gcc was not installed as well. After installing eight rpms for the gcc package I had a C compiler. The version of openssl was outdated for the current version of openssh so that had to be installed before moving on too. It would seem that the Mandrake install was minimal indeed! As even zlib, required by openssl, was not installed. Finally after a few hours of installing and searching I had a node that was ready to install my clustering software on. Distcc which would allow me to cross compile software across nodes was installed. I also installed MPICH as I had experience with it from my other projects. Finally things were ready to go.

Results

The XBOX unit functions well as a desktop computer for general usage, email, web browsing, etc. The total cost of the unit with keyboard, mouse, and parts came to 383.72 dollars. However, it is not as cost effective or as easy as using a general PC obtainable from almost anywhere for the same purpose. The technical merit of soldering the usb to XBOX controller wires as well as installing the mod chip are beyond the technical skills of most. In short if you already have an XBOX and want to tinker/need a computer and have no fear of the possibility of ruining your unit then this is a viable solution. However, as a general replacement to a desktop pc, the XBOX is not a solution.(Update 6/4/04) As always time changes things the Xbox is currently $150 and a mod chip is no loger required however Moore's Law hasn't stopped and $200 gets you quite a bit of hardware today.

DistCC

As for the XBOXes as a cluster I have to admit that I obtained better results than I had predicted. I recompiled the Linux kernel 2.4.20 on a single node took 48 mins 30 sec. Using distcc the process was cut down to 20 mins. This represented a 2.4 times out of 3.0 speedup. Not to bad for the 3 nodes. (Update 6/04/03) As many people have asked this was a full kernel compile. I found that swapping to disk was the problem with the extended times and after disablnig nearly everything on the xbox I got my compile down to more more reasonable times.

MPICH

My MPICH results were less telling. After nearly 100 runs of the same test programs my results varied between twice as slow across the three nodes and five times as fast as running the same program on a single node. (Update 6/04/03) After various other tests that followed in the months I found that there was a mistake in my code and saw simular results to the DISTCC. Further testing showed that swaping to disk was killing my over all times and finally after a few hacks settled the MPICH code down to a 2.8/3.0 speed up ratio which I was quite happy with.

In conclusion, the XBOX functions well due to the work done by the XBOX Linux project. However the same or greater computing power could be obtained for an equal price, without the complications of modifying the XBOX. This makes the XBOX an unfit solution as a replacement for a personal computer or a cluster node.

LinX

Xbox Linux
Matrix Mod Chip
Got Mod
MPICH
Distcc
More Pics
Other Projects of mine
Home