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.
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.
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
Will be provided during the lecture via moodle.
Will be provided during the lecture.
Prerequisites / Notice
A good knowledge of MATLAB (or Python or java) is necessary for attending this course.
Performance assessment information (valid until the course unit is held again)