This course teaches parallel programming for science and engineering. Emphasis is given to programming models predominantly used in high-performance computing. Students attending this course will be trained to write correct and efficient parallel programs.
Contents:
• Principles of parallel performance
• Parallel architectures
• Processes and threads
• MPI
• OpenMP
• Parallel programming tools
• Patterns of parallel programming
Language of instruction:
• English
Requirements:
• Knowledge of the C programming language
• Literature: C Programming Language by Brian W. Kernighan and Dennis M. Ritchie, Prentice Hall, 2nd edition.
Hours:
• 3h lecture and 2h practical exercise per week
Schedule:
This course is available every winter semester. For details regarding venue and time please consult the
CAMPUS system.
Literature:
W. Gropp, A. Skjellum, E. Lusk: Using MPI: Portable Parallel Programming with the Message Passing Interface, 2nd Edition, The MIT Press, 1999.
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, R. Menon: Parallel Programming in OpenMP, Morgan Kaufmann Publishers, Academic Press, 2001.
B. Chapman, G. Jost , R. van der Pas: Using OpenMP: Portable Shared Memory Parallel Programming, The MIT Press, 2007.
T. Mattson, B. Sanders, B. Massingill: Patterns for Parallel Programming, Addison-Wesley, 2004.