Efficient management of parallelism in object-oriented numerical software libraries. (English) Zbl 0882.65154

Arge, Erlend (ed.) et al., Modern software tools for scientific computing. International workshop, Oslo, Norway, September 16–18, 1996. Boston: Birkhäuser. 163-202 (1997).
Summary: Parallel numerical software based on the message passing model is enormously complicated. This paper introduces a set of techniques to manage the complexity, while maintaining high efficiency and ease of use. The PETSc 2.0 package uses object-oriented programming to conceal the details of the message passing, without concealing the parallelism, in a high-quality set of numerical software libraries. In fact, the programming model used by PETSc is also the most appropriate for NUMA shared-memory machines, since they require the same careful attention to memory hierarchies as do distributed-memory machines. Thus, the concepts discussed are appropriate for all scalable computing systems. The PETSc libraries provide many of the data structures and numerical kernels required for the scalable solution of partial differential equations, offering performance portability.
For the entire collection see [Zbl 0865.00057].


65Y05 Parallel numerical computation
65Y15 Packaged methods for numerical algorithms
65Z05 Applications to the sciences