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.
Competencies
Subject-specific Competencies
Concepts and Theories
assessed
Techniques and Technologies
assessed
Method-specific Competencies
Analytical Competencies
assessed
Decision-making
fostered
Media and Digital Technologies
assessed
Problem-solving
assessed
Project Management
fostered
Social Competencies
Communication
assessed
Cooperation and Teamwork
fostered
Personal Competencies
Adaptability and Flexibility
fostered
Critical Thinking
fostered
Integrity and Work Ethics
fostered
Self-direction and Self-management
fostered
Performance assessment
Performance assessment information (valid until the course unit is held again)