Full course description
Term: Fall 2025
Date: October 31st, 2025
Time: 12:00 to 1:00 p.m.
Location: Online Only
Instructor: Chris Kuhlman
Presented By: Advanced Research Computing (ARC)
Description:
Prerequisites:
A beginner level understanding of computer programming concepts.
Basic experience with navigating a computer and running software.
Access to a VT network (e.g., on campus or connected to VPN).
An ARC account to follow along.
Preferred: Familiarity with working in a linux shell environment.
No additional software (e.g., compilers) is needed; all required software is on the ARC clusters.
Concurrency (i.e., parallel) programming is a general term meaning that (most often) one execution of one code operates on different pieces of data simultaneously (concurrently) by using multiple computing hardware processors (e.g., cores on a compute node, GPU cores/threads on an accelerator). There are many approaches for implementing concurrency. In this 1-hour workshop, we focus on the OpenMP (Open Multi-Processing) standard. It is a powerful tool for converting appropriate serial computer programs into multi-threaded programs. We will cover basic concepts of OpenMP. We will cover other concepts that are important for OpenMP and for other types of concurrency. We will also provide examples that run on ARC clusters. Time permitting, we will cover other approaches such as threading, MPI, or GPUs.
You should consider attending if any of these apply: (1) you want to learn about parallel programming, (2) you have a particular interest/problem in parallel computing, or (3) you use software like ANSYS or LAMMPS and want to understand what is happening when you select different options for concurrency/parallelism in your executions.