ACSE 6: Patterns for Parallel Programming

Module Lead: Prof. Stephen Neethling

Staff: Dr. Adriana Paluszny; Prof. Stephen Neethling

Course Description

The module will introduce the basic concepts of parallel programming to students. They will be taught to use both shared memory and distributed memory parallelism, with these being implemented using OpenMP and MPI respectively. Both OpenMP and MPI will be taught using C++ and will thus require and build upon the skills learnt in ACSE-5 (Advanced Programming).

The students will be taught about different parallel architectures and decomposition strategies and will be required to implement a variety of algorithms based on these strategies. These will be done as classroom exercises, allowing the students to both improve their C++ skills and to become proficient in the use of both OpenMP and MPI.

The module will also teach about parallel efficiency and will provide the students with skills required to assess and improve the efficiency of their own code.