Multiprocessor software design

Peter G. Hibbard · 1980

Machines intended for parallel computations exhibit a wide variety of architectural designs, including pipeline, vector and array organizations, less traditional associative, data-flow and systolic organizations, and shared-memory MIMD organizations. It is not surprising, therefore, that the software support for these machines exhibits a wide variety of features reflecting the differing designs. Even within a single class of parallel machine, the system software used on different machines within that class may appear radically different. In part this variety arises because the design space for multiprocessor software is richer than for uniprocessor software; for example there are tradeoffs to be selected between performance and reliability, extensibility, fault-tolerance, etc., and the particular choice of design parameters can have a profound effect on the structure of the operating system. Another factor, however, which causes variety between different operating systems is that the costs of various design choices are known much less accurately than they are with uniprocessors, and thus individual multiprocessor operating systems may exhibit a great deal of experimental variability. Fortunately, the design principles are relatively well understood, and may be described in broad terms.

Read the paper · More papers on PaperTik