[DBPP] previous next up contents index [Search]
Next: Part II: Tools Up: 4 Putting Components Together Previous: Exercises

Chapter Notes

The merits of modular design are described in landmark papers by Parnas [220,221,223] and Wirth [295]. The book by McConnell [198] provides an excellent survey of the software construction process. Booch [40] and Cox and Novobilski [66] provide good introductions to modularity and object-oriented programming. Milner [210], Hoare [154], and Chandy and Misra [54] provide abstract treatments of modularity and program composition in parallel programming. Foster and Taylor [107] explore the use of modular design techniques in concurrent logic programming. Mead and Conway [199] and Ullman [286] provide introductions to VLSI design, another area in which modular design techniques are used extensively.

Gropp and Smith emphasize the importance of data distribution   neutrality in the design of SPMD libraries [127]. This principle is applied extensively in their Portable Extensible Tools   for Scientific computing (PETSc) package. ScaLAPACK is described by   Choi, Dongarra, and Walker [59], Dongarra and Walker [85], and Dongarra, van de Geign, and Walker [84]. Dongarra, Pozo, and Walker [83] describe   the C++ interface. Other parallel SPMD libraries include Lemke and   Quinlan's [188] P++ library for grid applications, Skjellum's [262] Multicomputer Toolbox, and Thinking Machine's [283] CMSSL. Skjellum et al. [265] discuss the use of the MPI message-passing standard to develop parallel libraries. A variety of other issues relating to parallel SPMD libraries are discussed in workshop proceedings edited by Skjellum [263,264].

The tuple space module discussed in Section 4.5 forms the basis for the Linda parallel programming model of Carriero and Gelernter [47,48,49]. The tuple space used in Linda is more general than that described here. In particular, any field can be used   as a key when retrieving tuples. The tuple space solution to the database search problem is based on a Linda program in [48]. The convolution problem and the performance results in Section 4.4 are taken from a paper by Foster et al. [101]. Foster and Worley [110] describe parallel algorithms for the fast Fourier transform.

Here is a Web Tour providing access to additional information on modular programming, parallel program design, and parallel libraries.



[DBPP] previous next up contents index [Search]
Next: Part II: Tools Up: 4 Putting Components Together Previous: Exercises

© Copyright 1995 by Ian Foster