Parallel Computing for Dummies
APAM’s acquisition of two SiCortex clusters presents students and other researchers with an opportunity for parallel computation. Some, such as Ph.D. students Brian Grierson and Aron Ahmadia, and Prof. Chris Marianetti, have been able to jump right in and are using Amdahl’s 1500 cores to their advantage. At the same time, a large percentage of Ph.D. students have a strong background in MATLAB, but lack the experience necessary to program a parallel machine. MATLAB provides users with a high level programming environment where issues such as memory management and variable typing are taken care of for you. Moreover, MATLAB provides a large library of easily accessible math functions. The free lunch ends however when one asks MATLAB to efficiently manage multiple processes in a distributed memory environment, or use high performance computational libraries (such as PETSc), or even run on many architectures (such as our SiCortex cluster). Instead, the world of parallel computing is dominated by the Message Passing Interface (MPI), as a library for lower-level languages such as C/C++/Fortran, all done within a Unix environment.
The workshop series this spring term, “Parallel Computing for Dummies”, gave students a chance to get a “taste” of high-performance computing. The workshops were interactive: students brought laptops to class and worked out exercises planned by the instructor. Workshops were given in basic Unix skills, C programming, MPI, PETSc, and linking to/using outside libraries (in particular the GNU Scientific library). While these workshops were certainly not sufficient to turn novices into experts, they did provide students a chance to see what would be involved in making this transition. Moreover, a community of new users has been established.
In addition to the workshop series, APAM’s Brian Grierson gave a “nuts-and-bolts” lecture on distributed arrays within PETSc and Prof. David Keyes gave a general theoretical introduction to scientific computing.