Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Distributed and parallel computing
El-Rewini H., Lewis T. (ed), Manning Publications Co., Greenwich, CT, 1998. Type: Book (9780137955923)
Date Reviewed: Mar 1 1999

Distributed and parallel computing has experienced massive growth in the last few years. On-site credit card validation, integrated airline reservation systems, a worldwide automatic teller machine network, the Internet email system, and the World Wide Web are examples of the successful application of distributed systems. Today, distributed computing systems offer highly reliable, highly integrated computing to users who may be physically separated and interacting through diverse means of communication via different hardware and software platforms. The objective is to provide seamless and consistent service by combining a large number of mostly independent programs running all over the world on a variety of platforms. There are many fundamental issues--both theoretical and practical--that need attention. We still do not have any universal computer language or software development tools to program parallel and distributed systems, nor do we have a general model to predict the performance of a distributed system for a particular application. This book attempts to present all the relevant issues in a logical, coherent, and unified way.

The book has 12 chapters on topics ranging from computing models and performance issues to message-passing interface (MPI) systems and Java. It focuses on the basic concepts, algorithms, and illustrative examples. Chapter 1 introduces the subject, provides a good taxonomy, and clears up some common confusion. Chapter 2 provides an excellent introduction to various performance metrics for parallel and distributed systems and introduces scalability and benchmarking. Chapter 3 provides a brief introduction to processor architecture, the Internet, ActiveX, distributed objects, and software agents. Chapters 4 and 5, respectively, introduce the two principal models of distributed computing--the parallel random access machine (PRAM) model and the message-passing model; several algorithms highlight the usefulness of the models. The purpose of the next two chapters is to introduce the different requirements for using a distributed system, that is, how to write programs for such machines and how to implement synchronization, scheduling, and load balancing. The treatment of the scheduling algorithms is fairly elaborate, including task allocation and heuristic scheduling for heterogeneous environments. Chapter 8 deals with data parallel programming using Parallaxis; the coverage is complete, including the programming model, virtual machine, program and I/O structure, and several good examples. Chapter 9 is a fairly complete discussion of parallel virtual machines, with detailed information on how to use them. The next two chapters constitute a good treatment of all the important issues related to the MPI and its extension, MPI-2. The last chapter is a concise introduction to the Java programming language and its capabilities and limitations. Throughout the book the emphasis is on clarity of concepts, balance between theoretical and practical details, and an attempt to unify the concepts.

There are many books on parallel and distributed computing; some are very theoretical, discussing parallel algorithm complexities and distributed computing semantics, while others mainly deal with the design of distributed systems or parallel programming languages and how to use them. This book stands out because it provides a balanced perspective on and overview of the entire subject; it also correctly provides the sense that the distinction between tightly coupled parallel machines and clusters of different machines connected via LANs or WANs is being increasingly blurred and that nearly every application in the near future will be network-aware. This is an ideal text for a fourth-year undergraduate university course on parallel and distributed computing. It would also be useful as a self-study text for people who want to start parallelizing their applications. Beginners will get a solid understanding of the overall issues as well as a sense of where the field is going. Some concepts are discussed in great detail, and many well-chosen examples clarify the concepts. A rich set of exercises at the end of each chapter goes into more detail. Readers will need a reasonable background in computer architecture and programming and operating systems, and familiarity with data structures and algorithm analysis would enhance understanding. The book is lucidly written, and the style is informal.

On the other hand, the book is not exhaustive; the authors do not go into much depth on most topics. The bibliography is not exhaustive, and most of the references are not cited in the text. Nonetheless, the book presents much useful information in a very coherent and readable fashion. The authors have made a commendable effort to put together a large body of issues and ideas in a single place. It will certainly be a worthwhile addition to the library of anyone who is interested in parallel and distributed systems.

Reviewer:  Pradip K. Srimani Review #: CR121685 (9903-0131)
Bookmark and Share
 
Distributed Architectures (C.1.4 ... )
 
 
Distributed Systems (D.4.7 ... )
 
 
Parallel Programming (D.1.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Distributed Architectures": Date
In search of clusters (2nd ed.)
Pfister G., Prentice-Hall, Inc., Upper Saddle River, NJ, 1998. Type: Book (9780138997090)
Nov 1 1998
A correctness condition for high-performance multiprocessors
Attiya H., Friedman R. SIAM Journal on Computing 27(6): 1637-1670, 1998. Type: Article
May 1 1999
How to build a Beowulf
Sterling T., Salmon J., Becker D., Savarese D., MIT Press, Cambridge, MA, 1999. Type: Book (9780262692182)
Dec 1 1999
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy