The AnandTech Linux XBOX PC Experiment
by Kristopher Kubicki on November 10, 2004 4:00 PM EST- Posted in
- Linux
The Test and Initialization
Obviously, we want to benchmark a few things on our XBOX cluster, but we need some points of reference. To do that, we took a few systems that we had around the lab of various cost and power, and configured them with SUSE Linux 9.1. All of our benchmarks are run without X running, since we want to minimize the load on the systems. Below is a breakdown of several of the systems that we are looking at to compare our XBOX on a desktop level.Various Cheap Desktops | |||
Desktop | XBOX Linux Cluster | Sempron 2200+ | Celeron 2.0GHz |
Processor | PIII 733MHz 128K L2 | Sempron 2200+ | Celeron 2.0GHz |
Motherboard | NVIDIA MCPX X3 | MSI K7N2G | ASROCK P4I45GV R5 |
Hard Drive | Seagate 5400RPM 8GB | Seagate 5400RPM 8GB | |
RAM | 64MB Shared PC3200 | 256MB PC2100 | |
Operating System | Xebian 1.03.2 SUSE 9.1 |
SUSE 9.1 | |
Kernel | 2.4.26 (Xebian) 2.6.4 (SUSE) |
2.6.4 | |
Compiler | linux:~ # gcc -v Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib64 --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux Thread model: posix gcc version 3.3.3 (SuSE Linux) | ||
Cost | $210 (including mod chip) | $287 | $277 |
As you can see, it's pretty difficult to get a cheap AMD or Celeron system in the fray (cost includes case, CPU, motherboard, memory, hard drive, DVD Player and cooling). All configurations use integrated video. The Semprons and Celerons are going to be much faster than our 733MHz XBOX, although the footprints on the Sempron and Celeron setups are pretty terrible - they take up the full space of a mid-ATX case. The XBOX is also the significantly quieter solution. Unfortunately, the XBOX has very little memory and when we fire X, the XBOX is really going to take a hit in performance.
As you may notice, we are still running SUSE 9.1 instead of 9.2; we haven't had the chance to validate and update 9.2 yet, and our server benchmarks were already done on SUSE 9.1 configurations with GCC 3.3.3.
Various Performance Configurations | |||
Desktop | XBOX Linux Cluster | Dual Opteron 250 | Dual Xeon 3.6GHz |
Processor | (8) PIII 733MHz 128K L2 | (2) Opteron 250 | (2) Xeon 3.6GHz |
Motherboard | NVIDIA MCPX X3 | Tyan K8W | SuperMicro X6DA8-G2 |
Hard Drive | (8) Seagate 5400RPM 10GB | Seagate 120GB 7200RPM IDE 8MB Cache | |
RAM | 64MB Shared PC2100 | 4GB DDR-400 | 4GB DDR2-400 |
Operating System | SUSE 9.1 | SUSE 9.1 | SUSE 9.1 |
Kernel | 2.6.4 | 2.6.4 | |
Compiler | linux:~ # gcc -v Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib64 --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux Thread model: posix gcc version 3.3.3 (SuSE Linux) | ||
Cost | $1680 (included mod chips) | ›$4000 | ›$4000 |
Our XBOX cluster costs considerably less than a performance workstation or server. The machines listed above were actually tested back in August, so we used the same OS and compiler setup from August. The eight-node XBOX cluster comes in at less than half that of the Opteron or Xeon setup, but of course, cannot offer us 64-bit capabilities amount other things.
Installing SUSE on the XBOX for the first time was not a simple task. The problem is that that the 8GB hard drives shipped with each XBOX is "locked" (you may read more about this here) so that it may only be booted by its own XBOX. There is an old, hacky guide that details how to get the normal XBOX hard drive to boot on a PC so that we can cross-install an operating system. The basic jist of the article follows:
- Leave the hard drive connected via the IDE and power cable to the XBOX and boot the Microsoft BIOS
- Boot the PC, but pause the installer before the Linux kernel loads
- Hot swap the hard drive from the XBOX to the PC (dangerous)
- Install Linux near the end of the hard drive
- Disconnect IDE cable, reboot PC
- Connect IDE cable before kernel initializes, then continue with installation and configuration of the OS
- Power down PC and XBOX, then reconnect the hard drive to the XBOX as usual
In the SmartXX OS, we actually have a tool to unlock the hard drive completely (or lock it back up later). This saved us a ton of work and we simply unlocked all of the 10GB hard drives shipped with our system. Thanks, SmartXX!
30 Comments
View All Comments
TimPope - Thursday, May 12, 2005 - link
not bad information but i would have liked to see some kind of real world performance using openmosix.. a single x box on its own as a pc is slow but stick 2-4 together using open mosix could make a reasonably good machine and still be pretty cheapHalz - Wednesday, November 17, 2004 - link
The rule followed in the article for the -j option, "number of proccessors + 1", overlooked the logical proccessors of the Xeon's Hyperthreading.. -j should have then been something around 5 instead of 3Halz - Wednesday, November 17, 2004 - link
Simply compiling on the Opteron and Xeon with the same number of threads as the full cluster would have illustraighted a difference.More testing should have gone into finding how many threads was the ideal number for the given platforms.
artifex - Saturday, November 13, 2004 - link
Aikouka, can't you just use one of those "HD Loader" type programs WITHOUT a modchip?I'd be all for modding my PS/2 if I thought I could actually do something useful with it, like stream audio/video from a PC or a ReplayTV or something.
KristopherKubicki - Saturday, November 13, 2004 - link
Halz: what should it have been?Kristopher
Aikouka - Thursday, November 11, 2004 - link
23, yes, you can still do just about anything. I know with the software mod that I use, I've been having problems getting the original MS Dash to load up, but I've gotten around that using other programs for the original dashboard's functionality (dvd etc).You know, you can also replace the HDD with just a software mod, and it's not that hard. So, if you don't want to hardware mod and want more space, you can still put in a bigger HDD. As much as some people don't like the XBOX, in my opinion, it's probably the best console to mod.
24, 2) Modchips also allow hdd loading if you have the PS2 HDD (using HDDLoader.) Also, it lets the warez'ers download and play games on the PS2 that they don't really own.
artifex - Thursday, November 11, 2004 - link
1) what we really need is a usb-based tv tuner that actually works. That would be excellent for adding functionality both to XBoxen as cheap PVRs (though I'd still just use XBMC to stream from my ReplayTV, most of the time), but also would be great for iMacs. I'm sure if someone came up with a decent open architecture design, the community would come up with drivers for both types of systems.2) what are modchips for PS2s useful for, other than playing import games? Especially with the new PS2s having no drive (is there still a header on the new board style to add one back?)
3) did I miss the obligatory dnetc test? You gotta do that, you know.
Booty - Thursday, November 11, 2004 - link
I don't even own an Xbox, but reading this article has me reaching for my wallet...But first, I want to get this straight - I can mod the Xbox and still use XLink, right? I doubt I'd get a Live subscription anyway, but it'd be nice to have that option possible.
Ideally I'd like to throw a bigger hard drive in there and then run XBMC, without losing the normal XBox capabilities.
So if I can do that, I'm goin' to the store this weekend... :)
Halz - Thursday, November 11, 2004 - link
The compile options for the Opteron and Xeon were starving the CPUs; the number of jobs (-j) was no where near optimal.Halz - Thursday, November 11, 2004 - link