MPI-OpenMP 2026

Dates
• September 28 – October 2, 2026

Location
• University Bremen, Room MZH5600

Content
• This course gives an introduction to parallel programming. The main focus is on the parallel programming models MPI and OpenMP as used in the programming languages C/C++ and Fortran. Exercises will be an essential part of the workshop.

Instructors
• The course given by Dr. Hinnerk Stüben (Regionales Rechenzentrum der Universität Hamburg) and Dr. Lars Nerger (BremHLR and Alfred Wegener Institute Bremerhaven).

Participation
• This course is open to all interested students or members of the Alfred Wegener Institute for Polar and Marine Research, University Bremen, the Jacobs University Bremen, Hochschule Bremerhaven, as well as associated institutions. In addition, we accept this year registrations from NHR users that are not affiliated in Bremen.

Prerequisites
• Solid fundamentals in Unix, C and/or Fortran will be essential!

Registration
• For registration please send an e-mail to: bremhlr@uni-bremen.de
• Deadline: September 21, 2026
• No registration fee!

Hands-on tutorials
• For the hands-on exercises, we ask the participants to bring their own notebook computers. They need to have a compiler (e.g. gcc) and MPI library (e.g. OpenMPI) installed so that parallel programs can be compiled. For Linux and MacOS, there are packages providing this software, while for Windows we recommend to install it via Cygwin (www.cygwin.com).

Information for non-local participants
• Hotels close to the University are “7 Things”, “Atlantic Hotel Universum Bremen”, and “Hotel Munte”.
• The University can be easily reached from Bremen main station (Hauptbahnhof) using the Tram line 6 in direction “Universität”. Please exit at the station “Bremen Universität/Zentralbereich”.
• The workshop is held in the building ‘Mehrzweckhochhaus (MZH)’ centrally located on the campus.

Tentative Schedule

Monday, 10:00 – 16:30
• Overview
• Thinking Parallel (I) – Computer architectures and programming models
• Laplace equation (I) – A realistic application example
• Checking computer setup
• Programming – A parallel “Hello World” program
• MPI (I) – basic functions, communicators, messages, basic data types
• Programming – send and recv

Tuesday, 9:15 – 16:30
• MPI (II)
– point-to-point communication (send and receive modes)
– Collective communication
– Reduction operations
• Programming – Communicate around a ring
• MPI (III)
– non-blocking communication
• Laplace equation (II) – Laplace example with MPI
• Thinking Parallel (II) – Performance considerations

Wednesday, 9:15 – 16:30
• MPI (IV)
– Communicators and buffering
– Derived data types
– Virtual topologies and communicator splitting
• Programming – Advanced ring communication
• MPI (V)
– one-sided communication
• Programming – get and put

Thursday, 9:15 – 16:30
• Thinking Parallel (II)
– Characterization of parallelism
– Data dependence analysis
• OpenMP (I) with exercises
– Concepts
– Parallelizing loops
• Laplace equation (II) – implementation with OpenMP
• OpenMP (II) with exercises
– Synchronization
– Loop scheduling
– False sharing


Friday, 9:15 – 15:00
• Parallel programming bugs
• MPI (VI)
– Parallel I/O with MPI-IO
• Programming – Parallel output with MPI-IO
• MPI (VII)
– Hybrid parallelization – joint use of MPI and OpenMP
• Programming – Hybrid “hello world” program