VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Advanced Systems Lab
Last Updated: 2026-06-03 00:14:13
Abstract
This course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality occurring in various fields in computer science. The focus is on optimizing for a single core and includes optimizing for the memory hierarchy, for special instruction sets, and the possible use of automatic performance tuning.
Objective
Software performance (i.e., runtime) arises through the complex interaction of algorithm, its implementation, the compiler used, and the microarchitecture the program is run on. The first goal of the course is to provide the student with an understanding of this "vertical" interaction, and hence software performance, for mathematical functionality. The second goal is to teach a systematic strategy how to use this knowledge to write fast software for numerical problems. This strategy will be trained in several homeworks and a semester-long group project.
Content
The fast evolution and increasing complexity of computing platforms pose a major challenge for developers of high performance software for engineering, science, and consumer applications: it becomes increasingly harder to harness the available computing power. Straightforward implementations may lose as much as one or two orders of magnitude in performance. On the other hand, creating optimal implementations requires the developer to have an understanding of algorithms, capabilities and limitations of compilers, and the target platform's architecture and microarchitecture. This interdisciplinary course introduces the student to the foundations and state-of-the-art techniques in high performance mathematical software development using important functionality such as matrix operations, transforms, filters, and others as examples. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and other details of current processors that require optimization. The concept of automatic performance tuning is introduced. The focus is on optimization for a single core; thus, the course complements others on parallel and distributed computing. Finally a general strategy for performance analysis and optimization is introduced that the students will apply in group projects that accompany the course.
Resources
Learning Materials (Links)
- Main link
- Information
General Information
- Language
- English
- Levels
- DZ , SHE , MSC , NDS
- Frequency
- Yearly recurring
Examination
- Type
- graded semester performance
Registration & Places
- Max Places
- 320
- Signup End
- 02.03.2026
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Advanced Systems Lab |
|
3 h weekly |
| exercise | Advanced Systems Lab |
|
2 h weekly |
| independent project |
Advanced Systems Lab
Project Work, no fixed presence required.
|
No time listed | 4 h weekly |
Offered In
-
-
Core Courses (In the ‘core courses’ subcategory, at least two course units must be successfully completed. Notice regarding 261-5110-00L Optimization for Data Science: as of FS 2025 it counts as elective course, but not anymore as a core course.)
-
-
Computer Science TC (Detailed information on the programme at: )
-
Computer Science Teaching Diploma (More informations at : )
-
-
-
-
-