Improving Software Performance - Parallel Programming

Enterprises & SME Research & Science
Improving Software Performance - Parallel Programming

When: September 18 - December 10, 2018

Where: In-class instruction (September 18 and December 10, 2018) will take place at the High-Performance Computing Center Stuttgart.

Duration: 125 hours total, 8 hours per week

Class format: Combination of in-class and online instruction

Language: The course language is German.

Registration: To register, please send an email including your full name and address, along with the subject line "Anmeldung Paralleles Programmieren." Register now


Parallel programming is considered a key to improving software performance. For code development on parallel systems, application programmers need not only a thorough understanding of parallel computing system architectures and programming models like MPI or OpenMP, but also the ability to implement directives, libraries, and important parallelization concepts efficiently.

The module "Parallel Programming" will provide such knowledge and skills. In addition to covering the theoretical foundations of parallelization, the course will include concrete programming exercises that offer the opportunity to gain a deeper understanding and practical expertise. The module is ideal for programmers and developers with experience in C, C++, or Fortran.

Module Contents

  • What is HPC?
  • Performance
  • Vectorization
  • Parallelization: thinking in parallel
  • Parallelizability of software, calculations, and requirements
  • OpenMP
  • Parallel programming models: introduction to MPI (C++, Fortran)
  • Parallel programming models: advanced MPI (C++, Fortran)
  • Parallel programming models: parallel I/O
  • Parallel programming models: hybrid programming - MPI + X
  • Other parallel programming models
  • Parallelization: scaling
  • Parallelization: domain decomposition and load balancing
  • Parallelization: parallel design patterns
  • Parallelization: parallel aspects of programming languages
  • Heterogeneous computing systems and graphic cards
  • Parallel numerical libraries
  • Parallelization strategies: deciding on a programming model

Flexible Learning

The module is conducted in a blended learning format, meaning that it combines self-learning phases and classroom instruction. This approach offers flexibility in the time required to work through the course content, so that continuing education can take place in parallel with job and family responsibilities.

Self-directed learning is complemented with regular online meetings in a virtual classroom, which take place on Monday evenings.

Time Commitment

Each module requires a time commitment of approximately 125 hours over the span of 12-14 weeks. Course time is divided as follows:

  • 8 hours per week per module, including a weekly online meeting (Monday evenings)
  • 2 classes at HLRS in Stuttgart


This continuing education program is supported by the European Social Fund and the Baden-Württemberg Ministry for Science, Research and the Arts, and is currently in a development phase. The first offering of this course is taking place as a "beta version." Participation is free of charge for this first offering of the course.

Target Audience

The contents of the module are designed to meet the needs of developers and software architects who develop or are planning to develop parallel software.


Because this continuing education course will take place online and in parallel with your other work, unrestricted access to a multicore, Internet-capable PC or laptop is essential. Although some course content can be displayed on mobile devices (tablets and smartphones) use of a PC/laptop is recommended because a large percentage of the assignments require programming. Additional requirements include programming knowledge in either C/C++ or Fortran as well as a basic knowledge of Linux.

Limited Number of Participants

This module is limited to 18 participants! You will be informed about whether you have been accepted before the course begins.

Further Information

Conditions of Participation


Do you have questions? We would be happy to hear from you.

Hanna Skubski

Please also see our Frequently Asked Questions.

The Supercomputing-Akademie is offered as part of the project MoeWE (Modular training to become a high performance computing expert). The project is funded by the European Social Fund and the Ministry of Science, Research and Arts Baden-Württemberg. Cooperation partners are the High Performance Computing Center of the University of Stuttgart, the University of Freiburg, the University of Ulm and SICOS-BW GmbH.

Logos der MoeWE Förderer