Parallel Programming Systems (IN2365) (Lecture)

Lecturer (assistant)
  • Michael Klemm
Duration2 SWS
TermWintersemester 2022/23
Language of instructionEnglish

Admission information


Dr.-Ing. Michael Klemm is a Principal Engineer at the Intel Architecture, Graphics and Software Group. His focus is on High Performance and Throughput Computing. He obtained an M.Sc. in Computer Science in 2003. Michael received a Doctor of Engineering degree (Dr.-Ing.) in Computer Science from the Friedrich-Alexander-University Erlangen-Nuremberg, Germany, in 2008. His research focus was on compilers and runtime optimizations for distributed systems. Michael's areas of interest include compiler construction, design of programming languages, parallel programming, and performance analysis and tuning. Michael is Intel representative in the OpenMP Language Committee and leads the efforts to develop error handling features for OpenMP. Since 2016, Michael Klemm is also the Chief Executive Officer of the OpenMP Architecture Review Board.


This lecture focuses on the implementation aspects of parallel programming systems. Parallel programming models need compiler and runtime support to map the rich feature set of a parallel programming model to actual parallel hardware. To obtain high performance and high efficiency, this mapping needs to take into account the specific architectural aspects of the underlying computer architecture. This lecture briefly reviews key concepts that have been presented in the lecture "Parallel Programming" and "Microprocessors". It then turns towards the fundamental algorithms used to implement the concepts of parallel programming models and how they interact with modern processors. While the lecture will focus on the general mechanisms, we will use the Intel processor architecture to exemplify the discussed implementation concepts.

Recommended Literature

  • John Hennessy and David Patterson: Computer Architecture: A Quantitative Approach (Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann, 6th edition, ISBN-13 978-0128119051.
  • William Stallings: Computer Organization and Architecture: Designing for Performance. Prentice Hall, 7th edition, ISBN 978-0131856448.
  • Yan Solihin: Fundamentals of Parallel Multicore Architecture. Apple Academic Press, ISBN 978-1482211184.
  • Sources of the LLVM OpenMP Runtime Implementation.
  • Sources of the Threading Building Blocks.
  • Select research papers regarding barrier implementation, lock implementation, scheduling task graphs, etc.
  • Intel Corporation: Intel® 64 and IA-32 Architectures Optimization Reference Manual, document ID 248966-040.
  • Barbara Chapman, Gabriele Jost, and Ruud van der Pas: Using OpenMP - Portable Shared Memory Parallel Programming. MIT Press, ISBN-13 978-0262533027.
  • Ruud van der Pas, Eric Stotzer, and Christian Terboven: Using OpenMP - The Next Step: Affinity, Accelerators, Tasking, and SIMD. MIT Press, ISBN-13 978-0262534789.
  • James Reinders: Threading Building Blocks. O'Reilly, ISBN 978-0596514808.