Gregory F. Pflster
Prentice Hall PTR, Upper Saddle River, NJ, 1998, 608 pp.
ISBN 0-13-899709-8, $35.96
In Search of Clusters; The ongoing battle in lowly parallel computing is a comprehensive and well-organized exposition of an important branch of parallel computing, computer clusters. The underlying theme of this book can best be summarized by the author's definition of cluster: a type of parallel or distributed system that consists of a collection of interconnected whole computers, and is used as a single, unified computing resource. As the author sought, this general definition allowed for his coverage to be descriptively inclusive yet not prescriptive; he continually acknowledges there are many ways to build a cluster. For the sake of comparison, he dedicates a great deal of the book to the coverage of symmetric multiprocessors (SMP's) and Non-Uniform Memory Access machines (NUMA's), key competitors to clusters. In general, the content of the book is very accessible where the author weaves elaborate prose with interjections of casual colloquialisms and bits of levity. His tone is truly ingratiating, and undoubtedly has the reader chuckling and smiling. The book can be used in upper-level undergraduate and lower-level graduate courses on parallelism, as well as by professionals in industry seeking information about this powerful new manifestation of parallelism.
The author systematically covers the subject of clusters. In Part One, he motivates and defines by explaining what clusters are, why they are needed, and why they are needed now. This material does not depend on prior knowledge and can be used for students new to parallel computing. In Part Two, the hardware of clusters is covered. Here, he describes, compares, and contrasts the main hardware genres encompassed in clusters, SMP's, and NUMA's. In Part Three, the same treatment is given to software including programming models, serialization, and specific parallel languages. In Part IV, he combines the material of the previous parts into a compelling presentation of what he states is the definitive characteristic of the cluster genre, the alliance between hardware and software. In this final part, he discusses overall systems and how they attain the many goals of any parallel architecture such as performance, scaleability, price/performance, and availability of nodes. He also includes a wonderful list of justifications for the one attribute that clusters offer that other parallel options do not, that of scavenging unused CPU cycles.
Overall, the book is quite comprehensive and well-organized with many good analogies and rich metaphors. In very few instances, however, the metaphors may get a bit reckless and resort to a (very small amount of) gender-biased language in descriptions. There are no end-of-chapter exercises nor are keypoints highlighted. On the other hand, there is a plethora of creative examples and illustrations to elucidate complex ideas that significantly aid the reader.
In summary, the author's mastery of language makes reading this book a pleasure. The coverage is complete and thorough, and logically ordered. The book is an excellent and accessible resource and would prove to be a pedagogical aid to any computer enthusiast interested in parallel computing.
University of Dayton