Skip to main content

Parallel Programming for Engineers

(in German: Parallel Programming for Engineers - )

Module-ID: FIN-INF-999959
Link: LSF
Responsibility: Prof. Dr. Michael Kuhn
Lecturer: Prof. Dr. Michael Kuhn
Classes:
  • Lecture Parallel Programming for Engineers
  • Exercise Parallel Programming for Engineers
 
Applicability in curriculum:

Abbreviation

PPE

Credit Points

5

Semester

Summer

Term

ab 1.

Duration

1 Semester

Language

english

Level

Master

Intended learning outcomes:
The participants...

  • understand the hardware architectures of parallel computers
  • optimize applications with regard to their performance
  • understand important concepts for the parallelization of applications
  • create parallel programs with different programming approaches in smaller teams
  • present solutions and results to other participants

Content:
Parallel programming is becoming increasingly important, as even phones and laptops have several processor cores. Some supercomputers even consist of several million cores and have established themselves as a useful and indispensable tool for many areas of science. The resulting analyses and simulations have made it possible to significantly increase scientific insight in many areas. However, the optimal use of these components is no easy task, which is why scientists are constantly faced with new challenges when developing efficient applications. A deeper understanding of the hardware and software environment as well as the possible causes of errors is therefore essential for parallel programming. In the lecture, the basics of parallel programming are taught; the exercises serve the practical application and implementation of the acquired knowledge in the C programming language. The lecture will cover some of the most important topics: Hardware and software concepts (multi-core processors, processes/threads, NUMA etc.), different approaches to parallel programming (OpenMP, POSIX threads, MPI) as well as tools for performance analysis and debugging (scalability, deadlocks, race conditions etc.). Moreover, reasons and solutions for performance problems are discussed and alternative approaches to parallel programming are presented. Examples and problems are illustrated using real scientific applications.

Workload:

  • 56h contact hours
  • 94h self study

Type of examination: Teaching method / lecture hours per week (SWS):

  • Written exam 120 minutes
  • Examination prerequisites will be announced at the beginning of the semester

  • Lecture (2 SWS)
  • Exercise (2 SWS)
Prerequisites according to examination regulations: Recommended prerequisites:

keine

  • Practical knowledge of a programming language and the ability to create simple programs (e.g., Scientific Computing)
  • Basic knowledge of operating systems and computer architectures
Media: Literature:

  • High Performance Computing: Modern Systems and Practices (Thomas Sterling, Matthew Anderson und Maciej Brodowicz)

Comments: