LECTURE: Parallel Programming Models

Overview

Teaching: 30 min
Exercises: 0 min
Questions
  • How is software actually written to run in parallel?

  • Does this differ in the shared-memory vs distributed-memory context?

  • What are the roles of processes and threads?

  • How is software written to use accelerators (GPUs)?

  • Why is this useful to know for running (if not writing) software on HPC?

Objectives
  • Understand concretely how software can execute in parallel through MPI and OpenMP using processes and threads

  • Understand the kinds of modifications needed to enable applications to use accelerators (GPUs)

  • Appreciate some of the complexities that parallel programmers need to resolve and which can impact performance

  • Gain an ability to assess whether a given software application of interest is able to run on a given machine (HPC or smaller) based on the programming models it supports

Slides

This part of the course will be delivered using a slide presentation. You can find the slides for this here.

Key Points

  • To be determined