Thomas L. Sterling, John Salmon, Donald J. Becker, Savarese, Daniel F. Savarese
MIT Press, Cambridge, MA, 1999, 250 pp.
ISBN: 026269218X, $31.95
The authors of this book have attempted to describe in 232 pages a subject which is difficult to fit into a book and which is rapidly evolving. Their stated purpose is "enabling, facilitating, and accelerating the adoption of the Beowulf model of distributed computing." They provide an in-depth view of one possible Beowulf system covering details of hardware selection, operating system configuration, communication software and a parallel sorting application. Overall the book is informative enough to convince people of the value of using Beowulf clustering and basically fulfills the stated purpose, but the subject matter is too broad for a single book.
The book begins with an overview of Beowulf systems including some background material on parallel computers and outlining the rest of the book. This discussion on parallel computers in general is quite brief. The authors point out the importance of the recent increases in performance of mass-market computers, which is the reason why Beowulf clusters exist. They continue this section by giving an overview of the hardware and software components of the Beowulf cluster.
Following the introduction is a discussion of the hardware elements used to build a typical Beowulf cluster. This discussion is nicely written and introduces topics such as the PCI bus, types of memory, and motherboards. The details are useful now, although the details of hardware design evolve too rapidly for this discussion to be as useful several years from now.
Next, the authors introduce the Linux operating system. This discussion is not detailed enough to guide a user through installation and configuration, but it does provide an overview and it includes a useful list of references both printed and electronic.
Following the Linux discussion, the authors sketch networking related issues. They discuss most available network hardware solutions and discuss Ethernet in sufficient detail to understand its performance. Their discussion of TCP/IP is detailed enough to understand IP addressing but does not include a discussion of routing. Overall, this discussion is a mixture of overviews of topics and detailed discussions.
The authors provide a useful discussion of how to manage a Beowulf cluster. They suggest practical methods of cloning nodes using Linux tools and they describe methods for day-to-day administration. This discussion is possibly the most useful contribution of the book. Most of the book consists of topics covered on more detail in on-line resources, but managing a Beowulf cluster is a little off the beaten path.
Next, the authors discuss parallelism. This includes a categorization of parallel algorithms along with an introduction to a variety of parallel performance metrics. They also give a useful introduction to MPI including a nice exposition about a sorting example. Their example provides a good example of MPI programming along with a useful analysis of the performance characteristics of the application.
Overall, the authors present a useful discussion of Beowulf clusters. Most topics are discussed lightly while a few are discussed in-depth. The reader should not expect this book to answer every question encountered in configuring and using a Beowulf cluster. Instead this book offers an overview of the process and details can be obtained by consulting manual pages, Linux Howto documents and on-line resources about Linux and MPI.
Benjamin R. Seyfarth
University of Southern Mississippi