Software Libraries for Message Passing Computers

David W. Walker

1 Title page
2 Overview of talk
3 Motivation for parallel libraries
4 Desirable features of parallel libraries
4.1 Communication safety
4.1.1 Intended behaviour of example 1
4.1.2 Unintended behaviour of example 1
4.1.3 Intended behaviour of example 2
4.1.4 Unintended behaviour of example 2
4.2 Process groups
4.3 Application topologies
5 Some existing parallel libraries
5.1 The Parallel Utilities Library
5.2 The Multicomputer Toolbox
5.3 The PETSc toolkit
6 The ScaLAPACK parallel library
6.1 Problems addressed by ScaLAPACK
6.2 Key ideas in ScaLAPACK
6.3 Non-uniform memory access machines
6.4 Unpartitioned LU factorisation
6.5 Block partitioned LU factorisation
6.6 The block-cyclic data distribution
6.7 Example of a block-cyclic data distribution
6.8 ScaLAPACK building blocks
6.8.1 Black box and tool box use modes
6.8.2 Basic Linear Algebra Communication Subprograms
6.8.3 Parallel BLAS
6.8.4 PBLAS operations
7 Approaches to parallel I/O
7.1 Basic parallel I/O operations
7.2 I/O cost of out-of-core LU
7.3 Hybrid LU factorisation algorithm
8 Object-oriented approaches
9 Procedural and object-oriented approaches
10 Summary and future work