Parallel Design Patterns

This course will present a foundation of a pattern language for parallel programming and will focus on parallel algorithm strategy patterns such as:

  • Task Parallelism
  • Recursive Splitting
  • Geometric Decomposition
  • Pipeline
  • Discrete Event and implementation Strategy Patterns such as:
  • Master/Worker
  • Loop Parallelism
  • Fork/Join
  • Shared Queue
  • Actors

Patterns are described on an abstract level and their implementations are explored in the tutorials. Tutorials put emphasis on creation of reusable generic implementations.

Generic applicability of a pattern implementation is demonstrated by applying it to distinct computational problems. Existing libraries (such as those from the Java SDK) are described and their design and use is discussed.

Programming exercises use C and Fortran, with MPI.


Our world-class systems are available for use by research and industry


View our research papers

A full list of EPCC's research papers and other outputs can be found via the University of Edinburgh's Research Explorer

Our services for business