• Specialization: High Performance and Parallel Computing
  • Instructor: Dr. Shelley Knuth, Associate Director of User Services and Dr. Thomas Hauser, Director of Research Computing
  • Prior knowledge needed: Basic knowledge of Linux; High-level understanding of the role of supercomputers is helpful but not required

View on Coursera

Learning Outcomes

  • Describe the components of a high-performance distributed computing system
  • Describe the following types of parallel programming models and the situations in which they might be used
    • High-throughput computing
    • Shared memory parallelism
    • Distributed memory parallelism
  • Navigate a typical Linux-based HPC environment
  • Assess and analyze application scalability including weak and strong scaling
  • Quantify the processing, data, and cost requirements for a computational project or workflow

Course Content

Duration: 4h 7m

Get to know the basics of an HPC system.  Users will learn how to work with common high performance computing systems they may encounter in future efforts.  This includes navigating filesystems, working with a typical HPC operating system (Linux), and some of the basic concepts of HPC.  We will also provide users some key information that is specific to the logistics of this course.

Duration: 2h 29m

During this week we will actually begin to use HPC infrastructure.  Some concepts we will learn are - how to load software appropriately onto an HPC system, what the different types of nodes a user can expect to encounter on a system, and how to submit a job to conduct work, such as perform calculations.

Duration: 3h 59m

In this module, we will introduce users to the nuances of memory on a high performance computing system.  We will also cover some ways to conduct work on a system most efficiently.  We will also introduce some beginning components of parallel programming.

Duration: 6h 59m

In this module, we will continue to review topics related to using a high performance computing system most efficiently, including scaling your workflow measuring how efficient your work on a system is, and how to utilize as much of the computing resource as possible.


Note: This page is periodically updated. Course information on the Coursera platform supersedes the information on this page. Click View on Coursera button above for the most up-to-date information.