A24 - A Programmer's Guide for Modern High-Performance Computing
Year | Dec 12-16, 2022 |
ECTS | 4 |
Registration | click here |
Course content |
This course is designed to respond to this need of understanding and being able to program novel HPC architectures. Specifically, the course covers three types of HPC architectures – multi-core processors, GPU accelerators, and FPGA accelerators -, and the programming models and techniques used for them. High-performance computing has seen a lot of interesting advances in the last decade, in both architectures and programming models. In terms of architectures, we have seen massive parallelism and various kinds of accelerators appearing with the promise of TeraFLOPs of performance. More and more application fields are tempted by the promise of many-fold performance gains, and willing to design and implement HPC solutions for their use-cases. Despite the enthusiasm, programming these novel HPC architectures is hard work. In fact, achieving the promised level of performance often requires suitable workloads, algorithm re-writing, multilayered parallelization, multi-grain concurrency, and aggressive optimization and tuning. None of these challenges should be good reasons to give up, but reasons enough to get to know more about programming these novel HPC architectures, while understanding their strong points, their limitation, and ultimately their “down-to-Earth” performance.
|
Course objectives |
This course is designed specifically to provide both the theoretical insight and the practical tools needed to understand and use and program these novel HPC systems. Specifically, the course covers three types of HPC systems – multi-core processors, GPU accelerators, and large scale systems, and introduces the programming models and techniques used to program them. Moreover, we also introduce specific techniques for big data analytics and distributed machine learning, which are among the largest consumers of computing cycles in HPC systems worldwide. |
Course schedule 2022 |
Dec 12-16, 2022
Monday: Systems and applications design in HPC – Dr. Ana-Lucia Varbanescu, UTwente Tuesday: Shared-memory programming – Dr. Clemens Grelck, UvA Wednesday: GPGPU programming – Dr. Ben van Werkhoven, Dr. Alessio Sclocco, NLeSC Thursday: Distributed computing: cloud and big data by prof.dr. Alexandru Iosup and Matthijs Friday: FPGA programming for HPC, by Dr. Nikos Alachiotis, UTwente |
Assessment |
Yes: a short essay on the implications of these technologies on own research. |
