LECTURE: Parallel Programming Models
Overview
Teaching: 30 min
Exercises: 0 minQuestions
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