101-0691-00L  Towards Efficient and High-Performance Computing for Engineers

SemesterSpring Semester 2021
LecturersD. Kammer
Periodicityyearly recurring course
Language of instructionEnglish


AbstractThis 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.
ObjectiveThis 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.
Content1. 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 notesWill be provided during the lecture via moodle.
LiteratureWill be provided during the lecture.
Prerequisites / NoticeA good knowledge of MATLAB (or Python or java) is necessary for attending this course.