HPC 201 — Advanced High Performance Computing Workshop


This course will cover some more advanced topics in cluster computing on the U-M Flux Cluster. Topics to be covered include a review of common parallel programming models and basic use of Flux; dependent and array scheduling; advanced troubleshooting and analysis using checkjob, qstat, and other tools; use of common scientific applications including Python, MATLAB, and R in parallel environments; parallel debugging and profiling of C and Fortran code, including logging, gdb (line-oriented debugging), ddt (GUI-based debugging) and map (GUI-based profiling) of MPI and OpenMP programs; and an introduction to using GPUs. We will issue you a temporary allocation to use for the course, or you can use your existing Flux allocations, if any.


HPC 101 or equivalent. This course assumes familiarity with the Linux command line, text editing on Linux, and a basic understanding of Flux including how to submit and track jobs.


Dr. Charles J Antonelli
Advocacy and Research Support Group
LSA Information Technology

Charles is a High Performance Computing Consultant in the Advocacy and Research Support Group of LSAIT at the University of Michigan, where he is responsible for high performance computing support and education, and is an advocate to the Departments of History and Communications. Prior to this, he built a parallel data ingestion component of a novel earth science data assimilation system, a secure packet vault, and worked on the No. 5 ESS Switch at Bell Labs in the 80s. He has taught courses in operating systems, distributed file systems, C++ programming, security, and database application design.

Seth Meyer
Advocacy and Research Support Group
LSA Information Technology

Mark Champe
Advocacy and Research Support Group
LSA Information Technology 


Course Preparation

In order to participate successfully in the class exercises, you must have a Flux user account, a Flux allocation, and an MToken. The user account allows you to log in to the cluster, create, compile, and test applications, and prepare Flux jobs for submission. The allocation allows you to submit those jobs, executing those applications in parallel on the cluster and charging their resource use against the allocation. A token is required to authenticate you to the cluster.

Flux user account

A single Flux user account can be used to prepare and submit jobs using various allocations. If you already already possess a user account, you can use it for this course, you can skip to “Flux allocation” below. If not, please visit https://arc-ts.umich.edu/fluxform to obtain one. A user account is free to members of the University community. Please note that obtaining an account requires human processing, so be sure to do this at least two business days before class begins.

Flux allocation

We’ll issue you a temporary allocation so you can run jobs on the cluster during the course. If you already have an existing Flux allocation, you can use that as well, if you like.


An MToken (hardware or software) is required to log in to the cluster. When logging in, you will need to give both the passcode it displays at time of login as well as your UMICH password in order to authenticate. If you already have an MToken, you can ignore the rest of this section.

If you need an MToken, follow the instructions at Obtaining, Activating, and Using an MToken.

Activate and test your MToken before you come to class.

Laptop Preparation

You do not need to bring your own laptop to class. The classroom contains Windows computers, which require your uniqname and UMICH password to login, and that have all necessary software pre-loaded.

If you want to use a laptop for the course, you are welcome to do so:  please see our web page on Preparing your laptop to use Flux. However, if there are problems connecting your laptop, you will be asked to switch to the provided computer for the class. We cannot stop to debug connection issues with personal or departmental laptops during the class.

More help

Please use our class mailing list hpc201course@umich.edu for questions, comments, or to seek further assistance.