Module: | High Performance Computing |
Module numbers: | 41.5078 [PVL 41.5079; Module 41.50780] |
Language: | english |
Study programme: | Dualer Master 2021 - Katalog AS: Anwendungs- und systemorientierte Module Master 2021 - Katalog AS: Anwendungs- und systemorientierte Module Dualer Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module MN Data Science 2016 - Katalog DS-I: Data Science - Informatik |
Type of course: | V+P = Lecture+Practical |
Weekly hours: | 2+2 |
Credit Points: | 6 |
Exam: | written exam |
Registering for exam | explicitly and independent of booking |
PVL (e.g. Practical): | graded |
PVL percentage: | 33% |
Frequency of offering: | each winter semester (lastly in WS 2021/2022) |
Required knowledge: | Programming experience (e.g. C, C++, Python, Go, Rust, etc.). |
Learning objectives: | Students are able to first plan, then build and then analyze the performance of High Performance Computing (HPC) systems. More precisely, they are able to:
- analyze problems and algorithms to discover inherent parallelism,
- find the appropriate granularity for a given problem, i.e. choose between fine-grained and coarser grained implementations,
- use shared memory (multithreaded), message passing and hybrid approaches,
- use, and choose between, currently available tools (programming languages, libraries, etc.),
- apply best practice design patterns and methods,
- measure and analyze the performance and scalability of HPC implementations.
|
Content: | - Performance - Where it is needed, why it is needed, how to measure and analyze it.
- Models of parallel computation
- theoretical models such as PRAM and Dataflow Graphs
- architectural models e.g. SIMD, MIMD, SPMD
- Methods and patterns for parallel system design
- The shared memory paradigm, both explicitly with multi-threaded programming and with compiler assistance via OpenMP.
- The message passing paradigm with MPI and/or modern MOM approaches (e.g. ZeroMQ).
- Heterogeneous Hardware approaches, particularly with GPUs (Graphics Processing Units), using various techniques, e.g. OpenCL or OpenACC.
|
Literature: | Main Text
- T. G. Mattson, B. A. Sanders & B. L. Massingill, Patterns for Parallel Programming, Addison-Wesley (Pearson Education), 2005.
Also helpful:
- Clay Breshears, The Art of Concurrency, O Reilly Media Inc, 2009.
- Ian Foster, Designing and Building Parallel Programs, Addison-Wesley Publishing, 1995. Cf. http://www.mcs.anl.gov/~itf/dbpp/
- Brendan Gregg, Systems Performance: Enterprise and the Cloud, 2nd Edition, Pearson, 2020.
|
Responsibility: | Ronald Moore |
Released: | SS 2021 |
Professional competencies: | - formal, algorithmic, mathematical competencies: medium
- analytical, design and implementation competencies: high
- technological competencies: high
- capability for scientific work: medium
|
Interdisciplinary competencies: | - project related competencies: low
- interdisciplinary expertise: basic technical and natural scientific competence
- social and self-competencies: ability to work in a team, analytical competence, deciding competence, competence of knowledge acquisition, presentational, documentary, teaching and mentoring competence, fluency
|