IEEE SOFTWARE 0740-7459/96/$05.00 © 1996 IEEE

Vol. 13, No. 4: JULY 1996, pp. 133-137

Bookshelf


Contemporary Guide to Parallel Programming

GREGORY V. WILSON, IBM CANADA

Nothing in this book is new, but everything in it is interesting. In a little less than 400 pages, David Skillicorn and Domenico Talia have collected some of the most influential articles on parallel programming to appear in the 1980s and early 1990s. This book touches on everything from high-performance Fortran to the semantic foundations of concurrent-constraint programming, and is rounded out by some brief introductory notes before each group of articles. Many of these articles originally appeared in Computer, and so will be understood by a wide audience; only one article, on concurrent-constraint programming, might confuse a nonspecialist.

OVERVIEW OF PARTICULAR SYSTEMS

Depending on how you count them, all but four of the book's articles describe particular programming systems. The exceptions cover multiprocessor-synchronization algorithms, performance-visualization tools, and Valiant's bulk-synchronous-parallel model. Judging by their original publication dates, the articles describe work performed from 1986 to 1993, although many of the systems themselves, such as Linda and Sisal, are older. Even so, little if any of the material presented seems out of date. In fact, I would still use many of these papers as an introduction to a particular type of system.

MISSING PARTS

As with any collection of this kind, you can quibble over particular exclusions. I was not surprised that the recently standardized Message Passing Interface was omitted, but the lack of any description of PVM (Parallel Virtual Machine) was perplexing. None of these articles covers dataflow systems as such. Stephen Brobst and Arvind's "The Evolution of Dataflow Architectures: From Static Dataflow to P-RISC" (Int'l J. High Speed Computing, Vol. 5, No. 2, 1993) might have been appropriate, if only because it could inspire similar retrospectives in other subspecialties. The chapter notes in Gregory Andrews' Concurrent Programming (Benjamin/ Cummings, 1991) are an invaluable reference of this kind. The only reason I can imagine for excluding Henri Bal, J.G. Steiner, and Andrew Tannenbaum's "Programming Languages for Distributed Computing Systems" (ACM Computing Surveys, Vol. 21, No. 3, 1989) is its original publication by the ACM rather than the IEEE. My one substantive complaint about the book's contents is the weakness of its index. That, and in the next edition (damn the cost), the Occam paper by David May, Roger Shepherd, and C. Keane should be set in larger print for the benefit of near-sighted programmers like myself.

These quite minor points aside, the book is a well-focused, well-balanced look at what has been done in parallel-programming systems over the last 10 years. It would make an excellent basis for a graduate reading course on the subject. [lozf]

Programming Languages for Parallel Processing, David B. Skillicorn and Domenico Talia, eds., IEEE CS Press, Los Alamitos, Calif., 1995, 399 pp., $34 for members, $45 for nonmembers.

READER SERVICE NUMBER 51