M.Sc. Seminar: Modern Trends in High Performance Computing (IN218305, IN2107)
Course 0000002603 in SS 2023
General Data
Course Type | seminar |
---|---|
Semester Weekly Hours | 2 SWS |
Organisational Unit | Informatics 5 - Chair of Scientific Computing (Prof. Bungartz) |
Lecturers |
Michael Georg Bader Ravil Dorozhinskii Fabio Gratl Markus Mühlhäußer |
Dates |
Tue, 10:00–12:00, MI 02.07.023 Fri, 12:00–14:00, MI 02.07.023 |
Assignment to Modules
-
IN2183: CSE Seminar Scientific Computing / CSE Seminar Course Scientific Computing
This module is included in the following catalogs:- Further Modules from Other Disciplines
Further Information
Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.
additional remarks | In the last ten years the period of vast increases in processing power mostly achieved by increasing the clock frequency of a processor has come to an end. Instead, computer architectures are getting more complex in order to accommodate the growing demand for processing power. Modern CPUs typically have a wide range of SIMD instructions for fine-grained data parallelism, and are capable of executing several threads on each of their several cores. Memory accesses are passed through multiple cache levels to hide memory access latencies. In addition to that, hardware specialized in performing massively parallel computations is getting more and more popular. Examples are GPUs and accelerators such as the Xeon Phi. In the HPC context, several nodes, each with its own CPU(s) and GPU(s) may be joined into a cluster. Regular programming techniques and paradigms are no longer sufficient to fully utilize this hardware. Frameworks such as OpenCL take the structure and heterogeneity of the underlying hardware into account and provide the programming environment to expose all available resources, such as GPUs and accelerators. The behavior of the hardware at runtime also needs to be considered. Modern Cluster architectures are not necessarily capable to run at peak utilization 100% of the time. To avoid the overheating of the hardware and the resulting degradation of the silicon, the clock frequency of the CPU may be drastically reduced, or single nodes may even be shut down completely for a time. In this seminar, we will explore runtime systems that try to alleviate these measures by automatic distribution of tasks, automatic tuning to the target platform or by performing an automatic offloading of work to accelerator devices. Each topic will cover a specific runtime system. Participants are expected to implement a proxy application using the runtime system they are assigned to, and to leverage the runtime system's specific benefits. Possible topics might include (but not limited to): - Raja - UPC++ - Kokkos - Chapel - Charm++/AMPI - Legate NumPy - Julia - Rust for HPC - OpenACC - OctoPos + IMPI - LLVM tools for HPC - C++17/20 parallel algorithms for GPUs - Profiling tools for HPC - NVIDIA Tensor cores - Your suggestions? |
---|---|
Links |
E-Learning course (e. g. Moodle) TUMonline entry |