Tutorial High-Performance Computing for Cyber-Physical Systems
| Lecturer (assistant) | |
|---|---|
| Number | 0000004251 |
| Type | exercise |
| Duration | 1 SWS |
| Term | Winter semester 2026/27 |
| Language of instruction | English |
| Position within curricula | See TUMonline |
| Dates | See TUMonline |
Dates
- 26.10.2026 10:00-11:30 2104, Seminar
- 09.11.2026 10:00-11:30 2104, Seminar
- 23.11.2026 10:00-11:30 2104, Seminar
- 07.12.2026 10:00-11:30 2104, Seminar
- 21.12.2026 10:00-11:30 2104, Seminar
- 18.01.2027 10:00-11:30 2104, Seminar
- 01.02.2027 10:00-11:30 2104, Seminar
Admission information
Description
In this module, students will learn advanced programming techniques in Python to develop efficient and scalable programs for cyber-physical systems (CPS). Cyber-physical systems are the computational backbone of many application domains, such as transportation networks, energy systems, and manufacturing processes. Due to the complex environments in which they operate, efficient use of the computational resources of cyber-physical systems is crucial and requires advanced programming skills.
We will cover both the theoretical and practical aspects of high-performance computing (HPC) to meet the performance requirements of modern cyber-physical systems. Python is a popular and powerful language that is well-suited for introducing HPC and has a large number of libraries and frameworks for HPC, such as NumPy and JAX. We will focus on the use of parallel computing, which allows Python programs to take advantage of the multiple cores and processors available on modern computers. Topics covered include concepts such as multiprocessing, shared memory, multi-threading for I/O, and efficient database access.
Starting from a discussion of basic Python programming techniques to speed up Python code, students will be introduced to object-orientated paradigms required for the development of performant code and efficient access to large databases. Subsequently, students will learn how to use multiprocessing in Python to create and manage multiple processes in their programs. They will learn how to use different synchronization and communication mechanisms to coordinate the work of these processes. Part of these methods will be taught on a real multi-core embedded board. Eventually, the course will introduce recent trend in high-performance computing that allows for the efficient development of parallelized code on accelerators. A final project concludes the course which gives the students the opportunity to use the learned techniques and develop their own high-performance computing program.
By the end of the module, students will be able to develop efficient and scalable Python programs that can take advantage of multiprocessing to speed up their computations. They will have a solid understanding of the principles and practices of using Python for high-performance computing for cyber-physical systems and will be able to apply these skills to their own projects.
We will cover both the theoretical and practical aspects of high-performance computing (HPC) to meet the performance requirements of modern cyber-physical systems. Python is a popular and powerful language that is well-suited for introducing HPC and has a large number of libraries and frameworks for HPC, such as NumPy and JAX. We will focus on the use of parallel computing, which allows Python programs to take advantage of the multiple cores and processors available on modern computers. Topics covered include concepts such as multiprocessing, shared memory, multi-threading for I/O, and efficient database access.
Starting from a discussion of basic Python programming techniques to speed up Python code, students will be introduced to object-orientated paradigms required for the development of performant code and efficient access to large databases. Subsequently, students will learn how to use multiprocessing in Python to create and manage multiple processes in their programs. They will learn how to use different synchronization and communication mechanisms to coordinate the work of these processes. Part of these methods will be taught on a real multi-core embedded board. Eventually, the course will introduce recent trend in high-performance computing that allows for the efficient development of parallelized code on accelerators. A final project concludes the course which gives the students the opportunity to use the learned techniques and develop their own high-performance computing program.
By the end of the module, students will be able to develop efficient and scalable Python programs that can take advantage of multiprocessing to speed up their computations. They will have a solid understanding of the principles and practices of using Python for high-performance computing for cyber-physical systems and will be able to apply these skills to their own projects.
Prerequisites
It is expected that students have a good understanding of computer science and engineering. Previous experience with Python is helpful but not mandatory; however, proficient use of another programming language is recommended. A limited introduction to Python basics will be given.
Teaching and learning methods
The module consists of a class lecture and a lab-based tutorial. The lecture explains the basic concepts and methods of software design for cyber-physical systems using presentations and limited demonstration of the discussed programming methods. In the tutorial, which is designed as a project work with assignments, the focus is on promoting active learning. Students directly apply the methods and concepts covered in the lecture. Thus they learn to design and analyze high-performance software for cyber-physical applications. They then discuss their results with a supervisor who can give direct feedback during the tutorials and will provide support during the work on the project assignments.
Through a combination of lectures, discussions, and hands-on activities, students will learn how to design, implement, and evaluate high-performance computing solutions for various cyber-physical systems.
Workload:
- Total hours: 90
- Contact hours: 45
- Self-study hours: 45
Through a combination of lectures, discussions, and hands-on activities, students will learn how to design, implement, and evaluate high-performance computing solutions for various cyber-physical systems.
Workload:
- Total hours: 90
- Contact hours: 45
- Self-study hours: 45