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.

Bibliographic Details
Main Author: Bisseling, Rob H. (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