Presenter: Andrew Monaghan
Contributions from: Gerardo Hidalgo-Cuellar, Mea Trahan Research Computing, University of Colorado
Users of high performance computing (HPC) can greatly benefit from the ability to parallize computational tasks across 10s, 100s or 1000s of CPU cores, which an in turn can speed up simulations by orders of magnitude. Whether or not you are a software developer, learing some basic fundamentals of software development for HPC -- software version control, message passing between parallel tasks within software (MPI), and profiling & scaling software -- will facilitate more effective computing practices, and may come in handy if you need to make modifications to research code.
This three-part short course will cover the following topics:
- May 19, 2022, 3:00p-4:00p: Software version control with git: An introduction to creating, managing, versioning and sharing software repositories on Github.
- May 20, 2022, 10:00a-11:00p: A "quick start" guide to profiling (systematically analyzing software to identify and address bottlenecks) and scaling (iteratively running MPI software for different numbers of cores, or different problem sizes, in order to determine the most efficient configuration on a given HPC cluster).
- May 20, 2022, 1:00p-2:00p: Fundamentals of MPI programming: An overview of the basic principles that enable software to be parallelized. Examples will focus on the "c" programming language, though principles are broadly applicable so experience with "c" is not needed.
While you may benefit most from taking all thre courses together, if your schedule is limited and you can only take 1-2 modules, each module will be designed to be as self-contained as possible.
- You will get the most out of this course if you have some experience using linux, high performance computing clusters, and some knowledge of programming.
- If you are from CU or CSU, register for a CU Research Computing account. If you are from another organization, some temporary accounts will be available.
Contact andrew.monaghan@colorado.edu if you have questions.
http://tinyurl.com/curc-survey18
Slides will be posted at this URL before the course begins.
(from command line: git clone https://github.com/ResearchComputing/HPC_software_dev_course)