DTSA 5702 Efficient Programming
- 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
Learning Outcomes
- Describe the computing and memory architecture of a supercomputing node or cloud computing instance
- Utilize compiler and libraries to increase the performance of your program
- Understand how to utilize vector operations of a modern microprocessor to maximize performance
- Use OpenMP directives to improve vectorization of your programs
Course Content
Duration: 3h
In this module, we cover an approach to analyze and optimize program performance, such as profiling, using optimized libraries, and compiler options for increasing efficiency.
Duration: 1h
In this module, we examine simple techniques that help with program performance. We are looking at scalar and loop optimization methods that can have a large impact on a program’s floating-point performance.
Duration: 1h
In this module, we introduce the basic architecture of modern computers focusing on how the architecture influences program performance. We are looking at processor level data parallelism and how optimized code for parallelism has a much increased floating-point performance.
Duration: 2h
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.
Duration: 2h
This module will provide an introduction to parallel and high throughput computing. It will also demonstrate slurm job arrays, where there are mechanisms for working with many similar jobs quickly and easily. Finally, this module will look at running many jobs concurrently with GNU Parallel.
Duration: 1h
You will complete a multiple choice exam worth 20% of your grade. You must attempt the final in order to earn a grade in the course. If you've upgraded to the for-credit version of this course, please make sure you review the additional for-credit materials in the Introductory module and anywhere else they may be found.
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.