This paper urges the reader to design with reusable parallel components. The author uses the analogy of hardware components and advocates building complex software systems from simple reusable components with fully specified interfaces. When tailoring becomes necessary, he recommends using simple add-on components rather than making internal changes; one example is a “black hole” unit used as a sink for unneeded outputs.
While the author makes some good points, the paper’s emphasis is purely on the connectivity of components rather than on how they and the assemblages constructed from them function. In the sort pump example, this lack of precision leads to an incorrectly specified system; it will take n (not one) end:.US marker tokens in the input to cause the output to be flushed from the pipe, and that output will be preceded by n such tokens that have been flushed in advance of the first sorted value. Likewise, the discussion of a parallel compiler, while an excellent idea, is rather superficial and does not consider all the practicalities of implementation. Nevertheless, the paper’s main points are valid and should be considered in the design of any large system.