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 Getting started with OpenMP

16 OpenMP topic: Parallel regions

17 OpenMP topic: Loop parallelism

18 OpenMP topic: Work sharing

19 OpenMP topic: Controlling thread data

20 OpenMP topic: Reductions

21 OpenMP topic: Synchronization

22 OpenMP topic: Tasks

23 OpenMP topic: Affinity

24 OpenMP topic: Memory model

25 OpenMP topic: SIMD processing

26 OpenMP remaining topics

27 OpenMP Review

28 PETSc basics

29 PETSc objects

30 Grid support

31 Finite Elements support

32 PETSc solvers

33 PETSC nonlinear solvers

34 PETSc tools

35 PETSc topics

36 Co-array Fortran

37 Sycl, OneAPI, DPC++

38 Exploring computer architecture

39 Process and thread affinity

40 Hybrid computing

41 Random number generation

42 Parallel I/O

43 Support libraries

Tutorials

Debugging

Tracing and profiling with TAU

SimGrid

Batch systems

Theory chapters

44 Teaching guide

45 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