Issue No. 10 - October (2006 vol. 7)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MDSO.2006.59
Arturo Ortiz-Tapia , Mexican Petroleum Institute
High Performance Linux Clusters with Oscar, Rocks, openMosix & MPI
Joseph D. Sloan
Joseph D. Sloan has painstakingly (and successfully) written a structured book that will guide you step-by-step through the process of constructing a cluster, from selecting hardware to programming. He also discusses the openMosix administration system, which you can use with several different software packages. Sloan discusses two of these: Oscar (Open Source Cluster Application Resources) and Rocks. You can download both for free from the Web.
Sloan begins with a historical, introductory review to establish why you should bother building or using a cluster in the first place. He then discusses the actual parallel programming and debugging, concluding with a trove of book references and links (most of which are current; it should be easy to find current versions of the outdated links).
Practical and straightforward
The book is quite instructive. Sloan uses as few technical words as possible. Almost anyone can understand his explanation, even people with no previous experience with the necessary hardware; Linux; administration tools; or parallel programming, debugging, and security issues. Paw prints next to a paragraph symbolize that the paragraph is a hint, and a jaw trap symbolizes a warning or something that you should use with caution.
I particularly liked the chapters about hardware selection and those related to the message passing interface (MPI). The explanation about the necessary hardware is so clear that you can visualize (at least roughly) how to construct a cluster. Not that Sloan tells you which cables connect to which plugs for your bunch of Pentium IIIs and Pentium IIs, but his discussion of building individual PCs and network devices is fairly comprehensive. The rest of the hardware-selection and assembly details depend mostly on your budget and calculation needs. Sloan also discusses environmental considerations, sparing no details about cooling the machines, wiring, maintaining the cluster, and protecting it against disasters or possible theft.
The MPI chapters are concise and straightforward—concrete examples for concrete problems. Sloan's explanation of the MPI directives for parallelizing seems more understandable than the explanations in the classics by William Gropp, Ewing Lusk, and Anthony Skjellum, at least for beginners. Once you've read and understood Sloan's book, you'll be better prepared for Gropp and his coauthors.
Administration and software selection
For the administration of a Linux cluster's hardware, Sloan prefers openMosix. He describes the system in general and gives details about its installation, commands, and testing. He also discusses the possible advantages of recompiling the Linux kernel for cluster usage with openMosix.
The software that creates the environment for programming, compilation, and cluster communications (among many other necessary programs) is collected into two comprehensible packages: Oscar and Rocks. You can use either, depending on your individual needs. Sloan amply discusses each, from downloading and installation to routine use to the situational advantages each package provides. For example, installing and managing Oscar is much simpler with identical hardware, while Rocks permits heterogeneous creation and growth of the cluster. However, you can install Oscar on top of different versions of Linux, whereas with Rocks you must use Red Hat Linux.
Sloan doesn't cover every possible aspect of high-performance Linux. For example, he admits that he doesn't say anything about diskless systems. However, he provides references or links for further reading about those issues he doesn't discuss.
The book has a few minor typographical errors, which can cause some temporary confusion, but you can overcome them using the context or the index. For example, page 248 says "In , you were introduced to point-to-point communication," with nothing after "In." Sloan is probably talking about the commands MPI_Send and MPI_Recv on pages 238 and 239, because on page 249 Sloan begins to explain the nonblocking commands MPI_Isend and MPI_Irecv.
Within this rather small, manageable book, you'll encounter most of the basics for starting a Linux cluster, whether you plan to actually perform heavy calculations or just want to learn how to construct a cluster with the old PCs you might have. I recommend this inexpensive book both for students and full-fledged researchers.
Arturo Ortiz-Tapia is a scientific researcher at the Mexican Petroleum Institute. Contact him at firstname.lastname@example.org.