Lessons learned teaching the art and practice of HPC.
In "Practical High-Performance Computing: Scaling beyond your laptop", an MIT course geared towards introducing HPC to a new audience through hands-on learning, students use their own research applications as project work to apply course concepts to gain experience and confidence in using HPC systems and throughout the scaling process.
Lauren Milechin (MIT) and Julia Mullen (MIT Lincoln Lab) provide new user support for the MIT SuperCloud, a system intended to support research collaboration between MIT Lincoln Laboratory and students, faculty, and researchers at MIT and other academic institutions requiring significant compute, memory or big data resources.
As a way to grow the high performance computing (HPC) community Milechin and Mullen, together with Chris Hill (MIT) devised "Practical High Performance Computing: Scaling Beyond Your Laptop (PHPC)" a course they offer during MIT’s Independent Activities Period (IAP) which occurs in the break between the fall and spring semesters. As part of IAP, the course is advertised and open to the entire MIT community: undergraduates, graduates, alumni, staff, and faculty. With no prerequisites, participants include new members of research groups that currently use the MIT SuperCloud system as well as potential users whose applications have grown too large for their desktops or those who have not yet begun their HPC journey. After 4 years offering this course, Milechin, Mullen and Hill presented what they have learned about teaching the art and practice of HPC to new audiences in a paper presented at PEARC '22: Practice and Experience in Advanced Research Computing, Boston, MA, USA, July 2022.
"Understanding that adult learners are motivated by solving a self-defined problem, we designed the course around hands-on learning that actively engages participants in scaling their own research problem," explains Milechin.
Drawing from years of meeting with users to discuss applications and suggest scaling strategies, the course designers uncovered a set of canonical workflows which they use to teach users how to analyze their applications. "Like many HPC centers, we begin by teaching users how to time their code to determine where bottlenecks exist," says Milechin. "Taking a step further, we introduce the students to other concerns that can impact performance, including the need for extra memory, excessive I/O, uncontrolled threading, or accelerator support. The goal is to provide the participants with the tools to scale their current application and understand how to analyze and scale future applications."
"While our system may be unique in the support of interactive capabilities, the HPC community is expanding to include more users who match our student population and we expect our approaches and lessons learned will be valuable to the wider HPC community," says Milechin.
Lauren Milechin, Julia Mullen, Chris Hill (2022), Building Experience and Confidence in HPC Practitioners through the Project-Based, Hands-On Practical HPC Course, PEARC '22: Practice and Experience in Advanced Research Computing, Boston, MA, USA, July 2022, doi: 10.1145/3491418.3535140