Beowulf-Class Computers: Hardware, Software, and Applications


Daniel S. Katz (
Jet Propulsion Laboratory
California Institute of Technology
Pasadena, CA 91109

Traditionally, the solution of many leading-edge problems in science and engineering has required computers that provided the highest possible performance. Unfortunately, these computers had associated with them the highest cost of any computing platform. However, today it is possible, using commodity components, to create machines that are substantially cheaper than supercomputers but are nearly comparable in performance. Specifically, Beowulf-class computers utilize cost-effective, mass-market, off-the-shelf components to deliver computational cycles at the lowest possible price/performance. They exploit a confluence of recent technological developments including: 1) the widespread availability of commodity hardware components (CPUs, memory, networking), 2) the availability of free (or very low cost) operating systems (Linux, FreeBSD), and 3) de-facto standard parallel programming environments (MPI, PVM, BSD).

As of September 1997, it is possible to assemble a system using Pentium Pro processors, each with 128 MB of memory and 3 GB of secondary storage and capable of 200 MFlop/s (peak) for under $1700 per processor. This price does not include the cost of the network, but for small systems (fewer than 32 processors) switched fast ethernet has proved reliable and cost-effective for under $250 per processor. Thus, for less than $32,000, it is possible to construct a 16-node machine with a theoretical peak performance of 3.2 GFlop/s and a typical sustained performance of 1.2 GFlop/s.

Caltech and JPL have been at the forefront of developing and using low-cost parallel systems for scientific and engineering applications. The goal of this seminar is to communicate some of that expertise. Topics that will be covered (and supplemented with pointers to other material) include: selection and tradeoffs among hardware components, networking options, installation and maintenance of software, and programming techniques. To assess the utility of Beowulf-class systems, applications that have been ported to a Beowulf machine will be examined and their performance analyzed.