101-0691-00L Towards Efficient and High-Performance Computing for Engineers
Semester | Spring Semester 2022 |
Lecturers | D. Kammer, M. Pundir |
Periodicity | yearly recurring course |
Language of instruction | English |
Abstract | This course is an introduction to various programming techniques and tools for the development of scientific simulations (using C++). It provides the practical and theoretical basis for high-performance computing (HPC) including data structure, testing, performance evaluation and parallelization. The course bridges the gap between introductory and advanced programming courses. |
Learning objective | This course provides an overview of programming techniques relevant for efficient and high-performance computing. It builds on introductory coding experience (e.g. matlab/python/java) and introduces the students to more advanced tools, specifically C++, external libraries, and supercomputers. The objective of this course is to introduce various approaches of good practice in developing your own code (for your research or engineering project) or using/modifying existing open-source programs. The course targets engineering students and seeks to provide a practical introduction towards performance-based computational simulation. |
Content | 1. code versioning and DevOps lifecycle 2. introduction to C++ 3. structured programming 4. object-oriented programming 5. code testing 6. code performance (design, data structure, evaluating, using external libraries) 7. code parallelization 8. running simulations on supercomputers |
Lecture notes | Will be provided during the lecture via moodle. |
Literature | Will be provided during the lecture. |
Prerequisites / Notice | A good knowledge of MATLAB (or Python or java) is necessary for attending this course. |