Parallel Programming for Science and Engineering
Much of scientific computing involves parallel programming of some sort. Where volume 1 gave the background theory for scientific computing, this book is purely practical. This is the ultimate introduction to modern versions of MPI and OpenMP, with shorter sections on PETSc, Kokkos, Sycl, Co-array Fortran.
This book is notable for its coverage of MPI and OpenMP in both C, Fortran, C++, and (for MPI) Python.
Many code examples are given, often with corresponding output. Full sources for these examples are in the repository.
As with volume 1, this book has been used and recommended in many parallel programming / scientific computing courses all over the world.