SC21 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

HPC Carpentry: Introducing New Users to HPC


Authors: Andrew Reid (National Institute of Standards and Technology (NIST)), Trevor Keller (National Institute of Standards and Technology (NIST)), Alan O'Cais (Forschungszentrum Jülich), Annajiat Alim Rasel (BRAC University, Bangladesh)

Abstract: HPC Carpentry introduces new users to high-performance computing through a set of community-contributed lessons. As diverse and powerful hardware becomes more widely deployed, users from a variety of technical backgrounds are faced with the challenge of adapting their problems to new environments; educational resources to bring users up to speed become more significant. Based on the approach of The Carpentries, HPC Carpentry lessons in development include an introduction to the use of a queuing system and an introduction to parallel programming in Python. The queuing lesson is part of the Incubator, where it benefits from the broader Carpentries community.

Long Description: Who we are

The HPC Carpentry community, a volunteer group of high-performance computing practitioners led by a steering committee, has developed a number of introductory lessons for new users of HPC systems.

What problem we solve

An under-appreciated consequence of the growth of HPC is that the range of backgrounds of new users of resources is increasingly broad, and may not include knowledge of computer system configurations and file system layouts. This prevents users from making effective use of these new systems. There is an on-going need to address the gap between the skills and expectations of users and the capabilities and opportunities presented by the available HPC resources.

The HPC Carpentry lessons address this gap, building on the pedagogically sound instructional methods of the Carpentries community. The best-developed lesson, HPC Intro, was recently submitted to the Carpentries Incubator, where it benefits from input from the broader Carpentries audience. Another important lesson in development uses Python and MPI to introduce the basics of parallel programming.

Many of our community members have important operational experience with a variety of HPC tools in a pedagogical context, including the operation of on-premise hardware, container, and cloud systems. This informs the lesson-development process at many levels.

Goals for the BoF

During this BoF, we will gather community feedback to ensure that we are helping HPC operators bring users on board, and helping users make good use of the systems. This will help prioritize efforts for successor lessons in light of the changing landscape of current HPC practice.

We plan discuss the following strategic topics:

1. For people who have used existing HPC Carpentry material, we are interested in positive and negative aspects of the experience. - Were HPC Carpentry lessons used exclusively, or in combination with material from The Carpentries or elsewhere? - What sequence of lessons was used to build the workshop?

2. Our existing lessons are not uniformly developed. How should we prioritize future development? - Existing lessons cover the important topics. Effort should go to improving them. - Higher-level programming languages: Chapel, Julia, Python. - Lower-level programming languages: C, CUDA, Fortran, OpenMP. - HPC frameworks -- Containers, Dask, Kokkos, MPI, parallel CUDA.

3. Should the lessons be stand-alone sessions, with resultant overlap of material, or should the lessons form a "deck" that workshop coordinators can mix and match?

4. How should we use existing complementary materials? There are resources available on some of our aspirational topics (containers, Julia, security). Should we: - Directly insert external lessons into workshops? - "Fork" and adapt external materials for our purposes? - Only present lessons we have written ourselves?

5. The current HPC Intro lesson has templates for customization to local resources. There is obvious tension between having flexible templates versus ease of set-up. - How much templating is useful? - Is the current degree of templating burdensome? - Should the material be adapted to permanent on-premise resources, or transient cloud resources?

6. What workshop duration is practical for teaching this material? - One 3-hour session (half-day)? - Two 3-hour sessions (full day)? - Three 3-hour sessions (one-and-a-half day)? - Four 3-hour sessions (two full days)?


URL: https://hpc-carpentry.org


Back to Birds of a Feather Archive Listing