Week 10 — Beowulf and the Death of Bespoke#

Where we are in 2026#

When you spin up a 16-node EC2 cluster with Slurm and run an MPI job on it, you’re using the architecture and software stack invented by two NASA engineers in a basement in 1994 with $50,000 worth of off-the-shelf PCs and a stock Ethernet switch. Beowulf is the most consequential supercomputer architecture of the 1990s, not because it was the fastest (it wasn’t even close), but because it convinced the world that “supercomputer” did not require any custom hardware at all.

This week is about how that idea took over.

The original Beowulf#

In summer 1994, Thomas Sterling (at NASA’s Center of Excellence in Space Data and Information Sciences, NASA Goddard) and Donald Becker (in the same group, primarily a Linux kernel developer who wrote most of the early Ethernet drivers) had a problem: their group needed compute for satellite data processing, the budget was tiny, and there was no path to a Cray.

So they bought 16 Intel DX4 (a 100 MHz 486) PCs, each with 16 MB of RAM, connected them with two stock 10 Mbps Ethernet networks (one for application traffic, one for I/O), put Linux on them, installed PVM, and called it Beowulf. ~$50,000 total. ~74 MFLOPS sustained on LINPACK. Forty times slower per CPU than the contemporary Cray Y-MP, but at 1/2,000 the cost. Source: Sterling & Becker (1995), “How to Build a Beowulf,” NASA Goddard Space Flight Center; Sterling et al. (1995), “BEOWULF: A parallel workstation for scientific computation,” Proc. ICPP ‘95 — both report the same configuration, sustained LINPACK number, and price.

Three things made Beowulf interesting beyond the obvious cost win:

  1. Linux. In 1994 Linux was three years old and not yet trusted by anyone. Becker wrote (or patched) the network drivers Beowulf needed, contributed them upstream, and made Linux a credible scientific OS in the process. The work flowed back: every Linux user since 1995 has been running Becker’s network drivers.

  2. Open software stack. Beowulf used Linux (free), gcc (free), PVM and later MPICH (free), NFS (free). No vendor lock-in anywhere. You could replicate it.

  3. The right level of “supercomputer-ness.” It was a real distributed-memory parallel computer, programmed with PVM and later MPI, capable of running real parallel scientific codes. Just slow, and cheap.

Sterling and Becker published “How to Build a Beowulf” in 1995 and presented it at Supercomputing ‘94. The reaction was a mix of excitement (universities and small labs that couldn’t afford real supercomputers) and dismissal (the established HPC vendors). Both reactions were, in different ways, correct.

Why Beowulf won#

The dismissive reaction was: “this is a slow toy; real supercomputers will always need custom interconnects and tightly engineered systems.” That reaction was right about peak performance. It was wrong about what customers wanted. Three forces:

  1. Per-FLOP cost. The original 1994 Beowulf cost about $50k and sustained roughly 74 MFLOPS on LINPACK; it was not fast, but it made the price/performance argument concrete. By the late 1990s, larger commodity clusters using faster Pentium-class CPUs and better Ethernet/Myrinet could be scaled incrementally at far lower cost per delivered FLOP than bespoke vector systems.

  2. Incremental scaling. A Cray T3E was a \(30M decision. A cluster started at \)50k and grew node-by-node as the budget arrived. For most institutions, gradual scaling won.

  3. Workforce. Anyone who could administer a Linux server could administer a Beowulf cluster. The Cray system administrator was a specialty. In a labor-cost-dominated world, this mattered.

By 2003, half of the Top500 was clusters. By 2010, well over 80% of the Top500 was clusters or cluster-derived architectures. The “Beowulf” name fell out of fashion (it became “cluster” or “HPC cluster” or “commodity cluster”), but the architecture won completely.

The 1995–2005 cluster software stack#

The basic structure that emerged and is still in use:

  • OS: Linux on every node. Initially Red Hat, then CentOS, now Rocky / Alma / Ubuntu / SUSE.

  • Compiler: gcc (free) or vendor (Intel, NVIDIA, IBM). Most academic codes used gcc and gfortran.

  • MPI: MPICH or LAM/MPI initially; Open MPI from 2004–2005 onward; vendor implementations (Intel MPI, MVAPICH, Cray MPT) for production HPC.

  • Job scheduler: PBS (Portable Batch System) → Torque, then Slurm (Lawrence Livermore, 2003) which won decisively. Slurm runs the job queue, tracks resource availability, launches and monitors jobs.

  • Shared filesystem: NFS in the early era, then Lustre (Cluster File Systems Inc., open-sourced 2003) and IBM GPFS / Spectrum Scale for production, OrangeFS / BeeGFS as alternatives.

  • Cluster management: home-grown scripts, then xCAT (IBM, 1999, open-sourced), Warewulf (Sterling’s team, 2002), ROCKS (UC San Diego, 2000).

By 2005 you could buy a Beowulf cluster as a turnkey product from Penguin Computing or Linux Networx or Rackable or Dell, with all of this stack pre-integrated. You stopped having to be Don Becker.

What changed when interconnect went serious#

The first Beowulfs used 10/100 Mbps Ethernet, and the resulting MPI latency was ~150 µs and bandwidth ~10 MB/s. Real HPC workloads — anything that does halo exchange every step — couldn’t tolerate this.

Three interconnect technologies fixed it:

  1. Myrinet (Myricom, 1995). 1.28 Gb/s, ~10 µs MPI latency. Used heavily through the early 2000s. Discontinued ~2013.

  2. Quadrics QsNet (1998). 3.2 Gb/s, ~3 µs latency. ASCI machines used it. Quadrics folded 2009.

  3. InfiniBand (2001). The standard that won. 10 Gb/s initially, 200 Gb/s HDR, 400 Gb/s NDR, and 800 Gb/s XDR in the newest systems. ~1 µs MPI latency. Open standard, multiple vendors (Mellanox, then NVIDIA after the 2019 acquisition; Cornelis Networks, formerly Intel Omni-Path).

Sources: Boden et al. (1995), “Myrinet: A gigabit-per-second local area network,” IEEE Micro 15(1):29–36, for the original Myrinet design; Petrini et al. (2002), “The Quadrics network: high-performance clustering technology,” IEEE Micro 22(1):46–57, for QsNet figures; InfiniBand Trade Association specifications (ibta.org) for HDR/NDR/XDR line rates.

Once you bolted Myrinet or InfiniBand onto a Beowulf-style cluster, the architectural distinction between “cluster” and “MPP” dissolved. The 2000s ASCI machines (Q, White, Purple) were all clusters with serious interconnect, just bigger and more carefully engineered than the corner-of-the-lab variety.

This is the architectural picture today: every Top500 entry is a cluster of fat nodes (multi-socket CPU + multiple GPUs) connected with a serious interconnect (Slingshot-11, NDR/XDR InfiniBand, BlueField, NVLink between nodes for AI workloads). The Beowulf model just kept getting more refined.

What MPI source looks like — unchanged#

A startling thing about the Beowulf-to-modern transition: the MPI source code did not change. A 1996 MPI heat-equation solver, written for a 16-node 486 cluster with PVM-then-MPICH, recompiles and runs largely unchanged on a 2026 Frontier-class system with roughly ten thousand nodes. The same MPI_Send, MPI_Recv, MPI_Allreduce calls. Same algorithmic decomposition. The only things that change at the source level are the constants — problem size, rank count — and sometimes the addition of GPU offload on top. Otherwise the programming model is preserved.

This is the reason MPI persists. The whole point of investing in a programming model is portability, and MPI delivered portability so completely that codes have a 30-year working lifespan.

The Beowulf paper, in retrospect#

The 1995 paper makes three predictions:

  1. “We expect the price-performance advantage of clusters to drive supercomputing economics for the next decade.” — Right; lasted three decades and counting.

  2. “Free system software is necessary for the model to scale; vendor-specific OSes will fragment the cluster ecosystem.” — Right; Linux became the universal HPC OS by 2003.

  3. “The interconnect will be the limiting factor; we need open standards for low-latency networks.” — Right; InfiniBand emerged in 2001, the OpenFabrics Alliance in 2005, and OFED is the cross-vendor RDMA stack.

You can find people complaining that academic predictions of computing trends never come true. Sterling and Becker hit three for three.

Lab — Build a real cluster on your laptop#

In labs/10-mini-cluster/ you set up a tiny single-machine “cluster” using Docker containers as virtual nodes. You install Slurm, MPICH, and a shared NFS volume, submit a job, watch it scheduled across the containers, and run an MPI program. The architecture is the same pattern as a roughly 10,000-node Frontier-class system — just smaller. Then we run the same heat-equation code from Week 9 on this mini cluster via Slurm submission, instead of mpirun -n 4 directly. You’ll see the actual production HPC workflow.

Discussion questions#

  1. Beowulf assumed Ethernet would be cheap and good enough. It was good enough for embarrassingly parallel work, not enough for tightly-coupled simulations. Today, AI training is moving toward a similar hybrid: NVLink within a “pod” of GPUs, Ethernet (with RoCE) between pods. Is this analogous to the Myrinet/InfiniBand vs. Ethernet split of 2000? What’s different?

  2. Linux became universal in HPC because it was free, and then because everyone knew it. The same dynamic might play out for an HPC scheduler — Slurm has been overwhelmingly dominant for fifteen years. What would have to be true for a successor to displace it?

  3. Beowulf democratized supercomputing access. AWS, Azure, and GCP HPC offerings (ParallelCluster, CycleCloud, Cluster Toolkit) democratize it again. Is cloud HPC the “next Beowulf moment”, or is it a different transition (capital expense → operating expense, dedicated → multi-tenant)? What’s the equivalent of Sterling and Becker’s $50k bet that would establish whether cloud HPC is structurally cheaper?

Further reading#

  • Sterling, T. & Becker, D. (1995). How to Build a Beowulf. Initial paper, Goddard Space Flight Center. Now widely available on archive.org.

  • Sterling, T., Becker, D., Savarese, D., Dorband, J., Ranawake, U. & Packer, C. (1995). “BEOWULF: A parallel workstation for scientific computation”. Proc. ICPP ‘95. The peer-reviewed version.

  • Top500 lists 1995–2005, in sequence. Watch the “architecture” column flip.

  • Yoo, A. et al. (2003). “SLURM: Simple Linux Utility for Resource Management”. JSSPP ‘03. The original Slurm paper.

  • Schwan, P. (2003). “Lustre: Building a file system for 1000-node clusters”. Linux Symposium.