Jacek Blazewicz, Klaus Ecker, Brigitte Plateau and Denis Trystram
Springer-Verlag, Berlin ISBN, 2000, 635 pp.
ISBN 3-540-66441-6, $119.00
As one would expect any handbook to be, it is rather large, a hardcover with 635 pages. Preparing it also must have been a serious endeavor as it contains contributions from 29 authors who put together 12 chapters covering most important aspects of parallel and distributed processing.
While the material is not officially presented in this way we can see it as being divided into two parts. First, after a brief introduction to the state-of-the-art and emerging trends, a broad introduction to the fundamental issues in the theory and practice of parallel computing is presented. In this part we find chapters devoted to design of efficient parallel algorithms, languages for parallel processing, architecture of parallel and distributed systems, parallel operating systems, management of resources in parallel systems, tools for parallel computing viewed from the perspective of performance evaluation, parallel database systems and multimedia object servers and networking aspects of distributed and parallel computing. The second part of the book consists of three chapters devoted to applications. Here we can read about parallel and distributed scientific computing, high performance computing in molecular sciences and multimedia applications for parallel and distributed systems. While I could try to discuss the covered material in more detail, this would not be easy due to the depth, breadth and, especially, density of material covered in each chapter. Suffice to say, that a comprehensive description of issues related to languages for parallel processing is condensed to about 60 pages. Therefore, instead of going into details of each chapter, I will rather say that their authors went to great length to make them very high quality overviews of their sub-area and their effort should be appreciated. As a result we obtain a solid summary of state-of-the-art of parallel and distributed computing in Spring of 1999 (which must have been the time-frame when the book went to final stages of production).
However, this also means, that the material presented in the book comes form earlier times. We have thus in our hands a book that is like a Polaroid picture; it presents a high quality snapshot of the state of the art in parallel and distributed computing in late 1990s. This also seemed to be one of the biggest potential weaknesses of handbook-type books. While there are areas of science, where publication of the handbook would seem natural (e.g. handbook of mathematical functions, or a handbook of combinatorial formulas), publication of a handbook for the area that changes as rapidly as parallel and distributed computing could seem a bit strange. The argument would be as follows. What good is a book that gives us snapshot of computing in 1999, while in 2001 the computational reality is substantially different. I had a chance to meet one of the Editors and I asked him about this very issue. The answer was rather unexpected. I was told, that this and other Handbooks are in demand and sell very well. For instance, they had to print more copies of the Handbook under review. After some discussion we came to the conclusion, that readers are hungry for solid work summarizing and bringing together the state-of-the-art in (sub-) disciplines of computer science. And maybe this is also a more general message. We are living in a very fragmented world of computing and we are being constantly attacked by enormous amounts of information delivered in form of journal articles and conference proceedings. This barrage causes an informational overdrive and results in a need for overviews and summaries to provide researchers with a more unified picture of the field(s). No doubts about this the Handbook under review clearly does a great job to satisfy this need.
Still, there are few issues that can be raised. They should be viewed suggestions for an improvement of future editions of this Handbook, or as an advice for other future Handbooks. While it is obvious that different authors have a different approach to the discipline it would be very nice if in the Handbook they would be required to have a more unified approach to the material (imposed by the Handbook Editors). For instance, some of the authors concentrate their attention on practical/pragmatic aspect of their sub-area, while others devote most of their time to discuss theoretical foundations of the area and pay almost no attention to the computational practice. Second, the selection of application areas could have been a bit more interesting. High performance computing in molecular sciences in many ways belongs to area of parallel and distributed scientific computing. At the same time there are no examples of database-oriented applications. Obviously, it is not easy to find authors that would tailor chapters to the need of a book (rather than to represent in the chapter their own biases and research interests), but if this was possible for most of the chapters in the first part, then it should have also been possible for the application-related chapters.
Overall, the book impresses me. I am not sure if I would pay the requested price, but for anyone interested in a summary of the state-of-the-art of parallel and distributed computing in 1999, this book is definitely a keeper. I would also like to suggest that each library in a research-oriented institution should have a copy of this book.
Oklahoma State University, Tulsa