Parallel scientific computation : a structured approach using BSP /
Bisseling explains how to use the bulk synchronous parallel (BSP) model and the freely available BSPlib communication library in parallel algorithm design and parallel programming. An appendix on the message-passing interface (MPI) discusses how to program using the MPI communication library.
| Main Author: | |
|---|---|
| Format: | eBook |
| Language: | English |
| Published: |
Oxford :
Oxford University Press,
2020.
|
| Edition: | Second edition. |
| Subjects: | |
| Online Access: | Connect to the full text of this electronic book |
Table of Contents:
- Cover
- Parallel Scientific Computation: A Structured Approach Using BSP
- Copyright
- PREFACE
- ACKNOWLEDGEMENTS
- ABOUT THE AUTHOR
- CONTENTS
- 1 Introduction
- 1.1 Parallel computing is everywhere
- 1.2 The BSPmodel
- 1.3 BSP algorithm for inner product computation
- 1.4 Starting with BSPlib: example program bspinprod
- 1.5 BSP benchmarking
- 1.6 Example programbspbench
- 1.7 Benchmark results
- 1.8 Sorting
- 1.9 Example function bspsort
- 1.10 Experimental results for samplesort on a Cartesius node
- 1.11 Bibliographic notes
- 1.11.1 BSP-related models of parallel computation
- 1.11.2 BSP libraries
- 1.11.3 The non-BSP world: message passing and threads
- 1.11.4 Benchmarking
- 1.11.5 Sorting
- 1.12 exercises
- 2 LU decomposition
- 2.1 The problem
- 2.2 Sequential LU decomposition
- 2.3 Basic parallel algorithm
- 2.4 Two-phase broadcasting and other improvements
- 2.5 High-performance LU decomposition
- 2.6 Example function bsplu
- 2.7 Experimental results on the Cori supercomputer
- 2.8 Bibliographic notes
- 2.8.1 Matrix distributions
- 2.8.2 Collective communication
- 2.8.3 Parallel matrix computations
- 2.9 exercises
- 3 The fast Fourier transform
- 3.1 The problem
- 3.2 Sequential recursive fast Fourier transform
- 3.3 Sequential nonrecursive algorithm
- 3.4 Parallel algorithm
- 3.5 Weight reduction
- 3.6 Example function bspfft
- 3.7 Experimental results on the Cartesius supercomputer
- 3.8 Bibliographic notes
- 3.8.1 Sequential FFT algorithms
- 3.8.2 Parallel FFT algorithms
- 3.8.3 Applications
- 3.9 exercises
- 4 Sparse matrix-vector multiplication
- 4.1 The problem
- 4.2 Sparsematrices and their data structures
- 4.3 Parallel algorithm
- 4.4 Cartesianmatrix distribution
- 4.5 Mondriaan distribution for general sparsematrices
- 4.6 Fine-grain and medium-grainmatrix distribution
- 4.7 Vector distribution
- 4.8 Random sparsematrices
- 4.9 Laplacian matrices
- 4.10 Parallel algorithm for hybrid-BSP
- 4.11 Example function bspmv
- 4.12 Experimental results on the Cartesius supercomputer
- 4.13 Bibliographic notes
- 4.13.1 Sparse matrix computations
- 4.13.2 Parallel sparse matrix-vector multiplication algorithms
- 4.13.3 Partitioning methods
- 4.14 exercises
- 5 Graph matching
- 5.1 The problem
- 5.2 Sequential algorithm
- 5.3 Suitors and sorting
- 5.4 Parallel algorithm
- 5.5 Correctness
- 5.6 Tie-breaking
- 5.7 Load balancing
- 5.8 Further improvements
- 5.9 Example function bspmatch
- 5.10 Experimental results on the Cartesius supercomputer
- 5.11 Bibliographic notes
- 5.11.1 Sequential graph matching
- 5.11.2 Parallel graph matching
- 5.11.3 GraphBLAS
- 5.12 exercises
- APPENDIX A: AUXILIARY BSPEDUPACK FUNCTIONS
- A.1 Header file bspedupack.h
- A.2 Utility file bspedupack.c
- APPENDIX B: A QUICK REFERENCE GUIDE TO BSPLIB
- REFERENCES
- INDEX