Jeff takes a look at what type of cluster $2500 will buy with today's technology. Back in 2005, 2.5x10E5 pennies bought eight Semprons and 14.5 GFLOPS. How many GFLOPS has two years brought us?
It's always fun to play what-if. What if I looked like Brad Pitt? What if I had lots of money? What if I lost a bunch of weight? What if I looked like Brad Pitt, lost of a bunch of weight, and had lots of money? What if I could spend that money on a new home cluster and build it myself? While worthy of an episode of Jerry Springer I think the last what-if is more appropriate for Cluster Monkey. [Men who spend their kids lunch money on Linux clusters on the next Jerry Springer Show - Ed.]
If you recall, our protagonists, Jeff and Doug, had built an 8 node cluster named Kronos for about $2,500. That was almost 18 months ago. What could we do now with $2,500? While we haven't built anything at this time, let's have a little fun and take a look at what we could build. (and what we might be building real soon now).
What could I do today?
A while ago (about 18 months), Doug Eadline and I wrote a series of articles about building a simple cluster for about $2,500. We chose to name the cluster Kronos for no real particular reason, but basically because we like old Sci-Fi movies that the younger generation can't appreciate. The first article talked about the "parts" list and the construction of the cluster. The second article talked about the software for the cluster. The third article talked about installing some MPI libraries and a job scheduler (SGE). In the final article we talked about some optimization we did to improve our HPL scores. Then Doug followed up with an article about trying to further improve the HPL scores.
The cluster, while a great source of cluster horsepower for us, is getting a bit long in tooth. Now we have dual-core and quad-core CPUs, memory has dropped in price, GigE has dropped in price, and the software is more mature. So I thought I would take a few moments and look at what we could do if we chose to build "Son of Kronos." While I don't have the funds to build such a beast, I think it's worthwhile to see what a good home built cluster would cost these days. (I do have a proposal in to the house management. It is still under consideration.)
Before I launch into showing you the prices let me start with some guidelines that I used in the pricing.
- I'm using AMD Athlon 64 X2 processors. Why? No particular reason. I'm sure I'll get lots of email saying "Intel Core 2 Duo is faster." While that may be true, I just chose to look at AMD for this article (and I have no desire to do a AMD vs. Intel pricing comparison. But if someone wants to fund me to build both systems and then run benchmarks on them I'll be glad to do that).
- I chose to use a disk-less booting system (Warewulf or Percus). Also, I decided not to put any disks in the compute nodes and put all of the storage in the master node using NFS.
- I decided to go with two GigE networks that are jumbo packet capable. One is for computational traffic and the second is for booting the nodes and for storage traffic.
- I wanted to have a decent amount of memory per core so I'm trying to get at least 1 GB of memory per core (2GB per node in the case of dual-core).
- I'm putting a couple of hard drives in the master node to provide storage for the cluster. You can run it as RAID-1 to get a little resiliency in the system or as RAID-0 to get some speed. It's up to you.
- To make my life easier, I chose to just use Newegg for the pricing. While I'm not advertising for them I have found them to have great prices, a wide selection, and good customer service.
- Lastly, the system will have at least one head node and one compute node. But I'll explore how many nodes I can get for various amounts of money.
So with these ground rules, let's start by looking at the head node.
Head Node
The table below lists the items I chose for my head node. I have included links to newegg for the items. The prices are current as of 1/25/2007 but are likely to change. Plus don't be surprised if some of the items disappear from the newegg site (welcome to the wild world of commodity parts!). In this initial configuration, I've chosen to use the 2.2 GHz AMD Athlon 64 X2 4200+ CPU. I thought it had a good price/performance so I decided to use it. Later on, I'll look at other CPUs and the affect on the total pricing.
Head Node (one) | |
Motherboard: ASRock ALiveNF6G-DVI | $73.12 |
Processor: AMD Athlon 64 X2 4200+ | $169.00 |
Memory: 2GB (2x1GB) DDR2-667 | $178.99 |
OS Hard Drive: Seagate 7200.9 80 GB | $49.93 |
Data HDD (two of these): Seagate 7200.10 320GB SATA 3.0 | $189.98 |
Computation GigE NIC (2 of these): Intel PWLA8391GT PCI PRO/1000 GT | $34.98 |
DVD (Dual-layer): LG 18X DVD+RW | $35.63 |
Case: RAIDMAX Scorpio 668WP w/ 420W PS | $55.98 |
Total: | $822.59 |
I looked at various options for the parts and selected them for various reasons. I chose a motherboard with built-in graphics so I didn't have to buy a separate graphics card. Plus the motherboard has a built-in GigE NIC that I can use for booting the nodes and for the storage network. I also added an Intel GigE NIC for the computational traffic (I plan on using GAMMA and it works best with Intel NICs). The second GigE NIC is to connect the head node to the outside world. I chose Seagate hard drives since I've had good luck with them and the performance of the new ones (7200.10) is particularly good. I also put in a DVD burner, because you are likely to need something to load the OS on the machine and you can always use to archive data from the head node. Also notice that I put the OS on a separate disk. I did this so it's easier to RAID the data hard drives.
The hardest decision I had to make was on the case. There were some cheaper cases, but they looked to be more difficult to work with. I chose a case that had at least one 120mm fan in the front and one in the back. My desktop case has 120mm fans in it and they are deadly quiet. Also, I wanted a case that had slots for hard drives that are sideways. That is you can pop off the side of the case and just slide the hard drives in without having to take off the front of the case. The case I chose is larger than the compute node case (in Kronos we used the same case for all of the nodes) and it doesn't look the same, but I value convenience, price, cooling, and the skin on my knuckles more than aesthetics.
Compute Node
Next I want to define the compute nodes. Remember I made these nodes disk-less so I don't need any hard drives in them. To make things easier I will use the same motherboard, CPU, and memory that I chose for the head node. I also put the same Intel NIC in this node for the computational network.
Compute Node (one) | |
Motherboard: ASRock ALiveNF6G-DVI | $73.12 |
Processor: AMD Athlon 64 X2 4200+ | $169.00 |
Memory: 2GB (2x1GB) DDR2-667 | $178.99 |
Computation GigE NIC: Intel PWLA8391GT PCI PRO/1000 GT | $34.98 |
Case: LinkWorld 617-C.88-P4 MicroATX Mini-Towerw/ 300W PS | $55.98 |
Total: (per node) | $512.07 |
Notice that the case I chose is a Micro-ATX case. I chose to use a Micro-ATX motherboard since I don't need a lot of components on the motherboard and it saves a little bit of money. The case is pretty small: 15" x 14" x 5.3"(HxDxW). It's maybe a little bit bigger than the compute cases we used in Kronos, but that's fine.
Networking
Networking/Cables |
Computational Switch: SMC SMCGS8 8-port jumbo packet capable switch | $62.32 |
Booting/Storage Switch: SMC SMCGS8 8-port jumbo packet capable switch | $62.32 |
Network Cables (estimated) | $32.00 |
Total: | $156.64 |
I chose 8-port GigE switches for two reasons. They are not much more expensive than 5-port switches but they are much cheaper than 16-port switches. Also, they allow room to grow the system configurations to a total of 8 nodes.
Configurations
Now let's start looking at pricing for various configurations. Let's start with the basic of a single head node and a single compute node (not much fun there).
Final Total for 2 Nodes (1 compute node + 1 head node) | |
Head Node: | $822.59 |
Compute Nodes (1): | $512.07 |
Networking: | $156.64 |
Grand Total: | $1,491.03 |
Just to recap, the system has 4 cores (if you count the head node), and a total of 4 GB of memory. This price doesn't look too swift though. It's about $364.08 per core. Plus we have all of these unused GigE ports hanging around. But the configuration does give you an idea of what you could do as a starting point.
Let's see what we can get for about $2,500 (the original price for Kronos).
Final Total for 4 Nodes (3 compute nodes + 1 head node) | |
Head Node: | $822.59 |
Compute Nodes (1): | $1,526.21 |
Networking: | $156.64 |
Grand Total: | $2,505.44 |
So you for about $2,500, which is what we originally spent on Kronos, results in 8 cores and 8 GB of memory. So this is about $310.06 per core (recall that the 2 node system was about $364.08 per core). Here's a quick comparison of the this system versus Kronos:
- CPUs: Current: 8x2.2GHz Athlon 64 cores (64-bit), Kronos: AMD Sempron 2500+ (32-bit)
- Memory: Current: 8GB total (2GB per node), Kronos: 2.3 GB total (512MB head node, 256MB per compute node)
- Interconnect: Current: 2xGigE, Kronos: GigE, FastE
So you can now get a machine with 8x2.2GHz (17.6 GHz total) 64-bit cores with 512KB of L2 cache per core versus 8x1.7GHz (13.6 GHz total) 32-bit cores with 128KB of L2 cache per core. From another perspective you get almost four times as much memory and a better storage network.
Let's keep going and examine a 6 node system (1 head node and 5 compute nodes).
Final Total for 6 Nodes (5 nodes + head node) | |
Head Node: | $822.59 |
Compute Nodes (5): | $2,560.35 |
Networking: | $156.64 |
Grand Total | $3,539.58 |
So for the configuration you get 12 cores and 12GB of memory. This works out to be about $292.05 per core.
Finally, let's go all the way and have 8 total nodes: 1 head node and 7 compute nodes. This will use all of the GigE ports on the system. So unless we upgrade the network switches, this is the largest machine in terms of the number of nodes.
Final Total for 8 Nodes (7 nodes + head node) | |
Head Node: | $822.59 |
Compute Nodes (7): | $3,584.49 |
Networking: | $156.64 |
Grand Total | $4,563.72 |
So for under $4,500 you get 16 cores and 16GB of memory. Not bad, not bad at all. This works out to about $285.23 per core.
This work is licensed under CC BY-NC-SA 4.0