This three-day workshop will provide an introduction to high-performance computing (HPC) on the Princeton University clusters. Participants will learn about aspects of computer architecture pertinent to programming for HPC, learn how to optimize their codes to take advantage of the vectorized math on modern processors, and learn parallel programming tools and paradigms for CPUs and GPUs. This workshop is aimed at researchers with a fair amount of programming experience, to help them make the transition from running single serial codes on their laptops or workstation to running parallel jobs on a cluster.
After a high-level overview of parallel programming models, of computer architecture, and of the interplay between the two, the workshop will have sessions on more specialized topics: OpenMP, MPI, and GPU programming. Each session builds on the previous ones (see agenda) and focuses on a different aspect of high-performance computing, and each with its own set of hands-on activities. Attendees are therefore strongly encouraged to attend all sessions.
All exercises will be conducted in compiled languages, primarily C and C++. Therefore, prior experience with Linux and with C, C++ (or Fortran) is REQUIRED in order to participate in this workshop.
Organized and Sponsored by PICSciE and OIT Research Computing
This site is hosted entirely on GitHub.