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: Tools interface

14 MPI leftover topics

15 MPI Examples

16 Getting started with OpenMP

17 OpenMP topic: Parallel regions

18 OpenMP topic: Loop parallelism

19 OpenMP topic: Work sharing

20 OpenMP topic: Controlling thread data

21 OpenMP topic: Reductions

22 OpenMP topic: Synchronization

23 OpenMP topic: Tasks

24 OpenMP topic: Affinity

25 OpenMP topic: Memory model

26 OpenMP topic: SIMD processing

27 OpenMP topic: Offloading

28 OpenMP remaining topics

29 OpenMP Review

30 OpenMP Examples

31 PETSc basics

32 PETSc objects

33 Grid support

34 Finite Elements support

35 PETSc solvers

36 PETSC nonlinear solvers

37 PETSc execution on GPUs

38 PETSc tools

39 PETSc topics

40 Co-array Fortran

41 Sycl, OneAPI, DPC++

42 Python multiprocessing

43 Exploring computer architecture

44 Process and thread affinity

45 Hybrid computing

46 Random number generation

47 Parallel I/O

48 Support libraries

Tutorials

Debugging

Tracing and profiling with TAU

SimGrid

Batch systems

Theory chapters

49 Teaching guide

50 Teaching from mental modesl

Index

Index

Bibliography

Bibliography

Index

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