Event box

Software Fundamentals for High Performance Computing
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, learning 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.
In this half-day workshop, we will cover three areas:
Hour 1: An introduction to creating, managing, versioning and sharing software repositories on Github.
15-min break
Hour 2: 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).
15-min break
Hour 3: 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.
- Date:
- Thursday, March 16, 2023
- Time:
- 1:00pm - 4:30pm
- Location:
- Norlin E206, Zoom (virtual meeting)
- Presenter(s):
- Andrew Monaghan
- Building:
- Norlin Library
- Categories:
- CRDDS
Pre-requisites:
* Familiarity with high performance computing
* Familiarity with Linux
* If attending in-person, bring a laptop