Parallel Programming for Science Engineering

by Victor Eijkhout

Theory chapters

1 Getting started with MPI

2 MPI topic: Functional parallelism

3 MPI topic: Collectives

4 MPI topic: Point-to-point

5 MPI topic: Communication modes

6 MPI topic: Data types

7 MPI topic: Communicators

8 MPI topic: Process management

9 MPI topic: One-sided communication

10 MPI topic: File I/O

11 MPI topic: Topologies

12 MPI topic: Shared memory

13 MPI topic: Hybrid computing

14 MPI topic: Tools interface

15 MPI leftover topics

16 MPI Examples

17 Getting started with OpenMP

18 OpenMP topic: Parallel regions

19 OpenMP topic: Loop parallelism

20 OpenMP topic: Reductions

21 OpenMP topic: Work sharing

22 OpenMP topic: Controlling thread data

23 OpenMP topic: Synchronization

24 OpenMP topic: Tasks

25 OpenMP topic: Affinity

26 OpenMP topic: Memory model

27 OpenMP topic: SIMD processing

28 OpenMP topic: Offloading

29 OpenMP remaining topics

30 OpenMP Review

31 OpenMP Examples

32 PETSc basics

33 PETSc objects

34 Grid support

35 Finite Elements support

36 PETSc solvers

37 PETSC nonlinear solvers

38 PETSc GPU support

39 PETSc tools

40 PETSc topics

41 Co-array Fortran

42 Kokkos

43 Sycl, OneAPI, DPC++

44 Python multiprocessing

45 Exploring computer architecture

46 Hybrid computing

47 Random number generation

48 Parallel I/O

49 Support libraries



Tracing, timing, and profiling


Batch systems

Parallel I/O

Theory chapters

50 Teaching guide

51 Teaching from mental models






This web page is part of the online version of the book "Parallel Programming in MPI and OpenMP" by Victor Eijkhout.

For more information.
Copyright 2016 Victor Eijkhout