Mohit Pundir: Catalogue data in Spring Semester 2022 |
Name | Dr. Mohit Pundir |
Address | Rechnergest. Mech. v. Werkstoffen ETH Zürich, HIF E 87.2 Laura-Hezner-Weg 7 8093 Zürich SWITZERLAND |
mohit.pundir@ifb.baug.ethz.ch | |
Department | Civil, Environmental and Geomatic Engineering |
Relationship | Lecturer |
Number | Title | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|
101-0691-00L | Towards Efficient and High-Performance Computing for Engineers | 4 credits | 3G | D. Kammer, M. Pundir | |
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. |