Introduction to Parallel Programming with MPI and OpenMP in C/C++, 6/28-6/29
This two-day workshop is intended to provide a practical introduction to the broad topic of parallel computing for scientific/numerical codes. Both MPI and OpenMP, two of the most popular tools for compiled-language parallel programming will be covered. The primary focus of the workshop will be features and topics most useful for beginning parallel programmers.
The first day will cover MPI, including environment management, point-to-point communication, and collective communication routines. The second day will cover OpenMP constructs for specifying parallel regions, work sharing, synchronization, and environment management. Covered throughout the workshop will be general strategies for writing and scaling parallel code as well as tips for optimizing and debugging. Examples will be provided in C and C++ and multiple lab exercises will allow participants to hands-on experience designing, writing, compiling, and executing parallel code on a Princeton Research Computing High Performance Computing (HPC) Cluster.
Level/Prerequisites: This workshop assumes no prior experience with parallel programming but does require some basic familiarity with C or C++ and knowledge of basic programming concepts. Because the Fortran MPI and OpenMP implementations are very similar to C/C++, Fortran programmers are encouraged to attend (though a quick overview of C syntax would be recommended). Some experience working in a Linux command line environment is likely necessary for the hands-on sections. Registrants must have a Princeton University netID, as this is required to gain access to the HPC cluster. Participants should bring their own computers with an ssh client already installed.
Because of hands-on nature of this workshop please bring:
1. A laptop with a wireless connection and an ssh client already installed. Linux and mac should already have one. Windows users will need a client, e.g. putty, cygwin, etc.
2. An account on adroit. If you do not already have one you can register here: https://www.princeton.edu/researchcomputing/computational-hardware/adroit/registration. In the “specify reason for use” write “Intro to Parallel Computing Workshop”. This is not automated so please do not wait until the last minute to register!
Ian Cosden is a Manager, HPC Software Engineering and Performance Tuning,in the Research Computing department at Princeton University. Prior to his current position he was a Research Computing Software & Programming Analyst where he worked with researchers to help build, develop, debug, and optimize serial/parallel scientific codes. He has a Ph.D. in Mechanical Engineering from the University of Pennsylvania where he developed the first highly-parallel hybrid atomistic-continuum model for liquid-vapor phase change.
Please register online at the training website, www.princeton.edu/training or contact Andrea Rubinstein at firstname.lastname@example.org /258-1397.
Location: Princeton Center for Theoretical Science, 407 Jadwin Hall
Date/Time: 06/28/17 at 10:00 am - 06/29/17 at 3:30 pm