Using the Pilot Library to Teach Message-Passing Programming

William B. Gardner, John D. Carter · 2014

Message-passing is the staple of HPC codes, and MPI has long occupied the place of HPC's default programming paradigm, thus it would seem to be the natural choice for instructing undergraduates. Nonetheless, MPI is a low-level API, complex and tricky to use, with many pitfalls awaiting the inexperienced. The Pilot library was invented as an alternative HPC programming model for C and Fortran. Pilot-based codes, using a process/channel application architecture borrowed from Communicating Sequential Processes (CSP), can avoid some categories of errors, and the Pilot library with its integrated deadlock detector provides extensive checking and diagnosis of usage problems, which is especially important for students running cluster programs in their typical low-visibility environment with limited debugging tools. This paper gives an overview of programming in Pilot, with its compact API of point-to-point and collective operations. It explains reasons for preferring it as an introductory message-passing technique, describes free resources available to the instructor, and relates experiences of using Pilot with undergraduates over five years, including student reactions. Pilot is now available as free and open source.

Read the paper · More papers on PaperTik