Derived from lectures given since 1988 in a course on “Concurrent Scientific Computing” at the California Institute of Technology, this book uses a stepwise refinement approach to developing parallel computer programs. Using a modified version of the “UNITY notation,” Van de Velde presents several versions of the same algorithm using pseudocode with increasing amounts of implementation detail but always keeping to a general framework. His goal is to specify the pseudocode precisely enough for rigorous algorithmic analysis while avoiding much of the technical detail that would be necessary when using a programming language.
For those who are not familiar with UNITY, it may take a while to get used to this notation and, in particular, to the level of abstraction used in some of the more complicated algorithms. This approach seems to be an excellent way to get the key ideas across without having to go into specific parallel architectural dependences, however. The book is divided into 12 chapters:
By using a stepwise approach to parallel program development, the author has produced a compact book that covers many topics of interest to students in concurrent scientific computing, while giving instructors a delightful and teachable textbook.