Parallel Programming in Computational Engineering and Science 2017
kindly sponsored by
HPC Seminar and Workshop
March, 20 - 24, 2017
IT Center RWTH Aachen University
Seminar Room 3 + 4
We look forward to your feedback
to improve next year's ppces here >>>
This event continues the tradition of previous annual week-long events that take place in Aachen every spring since 2001.
Throughout the week we will cover parallel programming using OpenMP and MPI in Fortran and C/C++ and performance tuning. Furthermore, we will introduce the participants to GPGPU programming with OpenACC. Hands-on exercises for each topic will be provided, which should not discourage you from working on your own code.
The topics will be presented in a modular way, so that you could pick specific ones and register for the particular days only in order to let you invest your time as efficiently as possible. Please register separately for each event day.
Guest lectures by Ruud van der Pas (Oracle), Thomas Röhl (RRZE), Bernd Dammann (TUD) and case studies complete the program.
Agenda and Course Materials
Shared Memory Programming with OpenMP - Day I
- Exercises_OMP.pdf, source code: openmp_ex_ppces_2017.tar.bz2
Shared Memory Programming with OpenMP - Day II
- Intel Threading Tools
- Performance Analysis with LIKWID
Message Passing with MPI - Day I
- PPCES2017_MPI_Lab.pdf, source code: PPCES2017_MPI_Lab.tar.bz2
- Debugging with TotalView
Message Passing with MPI - Day II
GPGPU Programming with OpenACC
Attendees should be comfortable with C/C++ or Fortran programming and interested in learning more about the technical details of application tuning and parallelization. The presentations will be given in English.
Registration - is open!!
I. + II. OpenMP is a widely used approach for programming shared memory architectures, supported by most compilers nowadays. We will cover the basics of the programming paradigm as well as some advanced topics such as programming NUMA machines. We will also cover a selection of performance and verification tools for OpenMP. The RWTH Compute Cluster contains a number of big SMP machines (up to 144 cores and 2 TB of main memory) as we consider shared memory programming a vital alternative for applications that cannot be easily parallelized with MPI. We also expect a growing number of application codes to combine MPI and OpenMP for clusters of nodes with a growing number of cores.
Furthermore, we will introduce the participants to modern features of the OpenMP 4 standard like vectorization and programming for accelerators and for the Many Integrated Core (MIC) architecture.
- March 20 - Part I Shared Memory Programming with OpenMP Day I
March 21 - Part II Shared Memory Programming with OpenMP Day II
III. + IV. The Message Passing Interface (MPI) is the de-facto standard for programming large HPC systems. We will introduce the basic concepts and give an overview of some advanced features. Also covered is hybrid parallelization, i.e. the combination of MPI and shared memory programming, which is gaining popularity as the number of cores per cluster node grows. Furthermore, we will introduce the TotalView debugger and a selection of performance and correctness-checking tools (Score-P, Vampir, MUST).
- March 22 - Part III Message Passing with MPI Day I
- March 23 - Part IV Message Passing with MPI Day II
V. OpenACC is a directive-based programming model for accelerators, which enables delegating the responsibility for low-level (e.g. CUDA or OpenCL) programming tasks to the compiler. Using the OpenACC industry standard, the programmer can offload compute-intensive loops to an attached accelerator with little effort. We will give an overview on OpenACC while focusing on NVIDIA GPUs. We will cover topics such as the GPU architecture, offloading loops, managing data movement between hosts and devices, using managed memory, tuning data movement, hiding latencies, and writing heterogeneous applications (CPU + GPU). Finally, we will also compare OpenACC to OpenMP device constructs. Hands-on sessions are done on the RWTH Aachen GPU (Fermi) Cluster using PGI‘s OpenACC implementation.
- March 24 - Part V GPGPU Programming with OpenACC Register here >>>
Please make your own hotel reservation. You may find a list of hotels in Aachen on the web pages of Aachen Tourist Service. We recommend that you try to book a room at the Novotel Aachen City, Mercure am Graben or Aachen Best Western Regence hotels. These are nice hotels with reasonable prices within walking distance (20-30 minutes, see city map) from the IT Center through the old city of Aachen. An alternative is the IBIS Aachen Marschiertor hotel, located close to the main station, which is convenient if you are traveling by train and also prefer to commute to the IT Center by train (4 trains per hour, 2 stops).
Most trains between Aachen and Düsseldorf stop at station Aachen West, which is 10 minutes walk away from the IT Center.
From the bus stop and the train station just walk up Seffenter Weg. The first building on the left side at the junction with Kopernikusstraße is the IT Center of RWTH Aachen University. The event will take place in the extension building located at Kopernikusstraße 6.