Our group also offers study projects, in particular for the students of the Bachelor and Master AI courses.
Individual Project Ideas
You already have a project idea in mind?
Contact us with your idea: cs-os-staff@lists.rub.de
Open Projects
All projects are currently already assigned.
Completed Projects
Completed: 07/2024
Supervisors: Prof. Dr.-Ing. Timo Hönig, Henriette Herzog, M.Sc.
Abstract:
Performance benchmarking plays an essential role in the assessment of software, and there are many tools available to run such benchmarks. With such tools, a system is often instructed to perform a certain set of tasks, while the performance measurements are collected from the system. This can be done through hardware performance counters (HPC s), which are found in many modern central processing units (CPUs), and oftentimes are offered through dedicated interfaces. For Linux, such an interface is perf. perf provides extensive access to various system profiling information, such as performance metrics (e.g. context switches, translation
lookaside buffer ( TLB ) flushes), which are supported by most modern-day systems. Many of the CPUs used in such systems also provide interfaces for profiling their energy consumption. However, the availability of this is not yet widely adopted in benchmarking tools, such as lmbench, which is among the most popular options for performance benchmarking in academic publications. Furthermore, lmbench is written in the C programming language, which does not provide memory-safety and many other safety-measures taken by modern programming languages.
Additionally, one cannot reproducibly (i.e. bit-by-bit reproducibly) build lmbench with modern C toolchains, making it hard to reason about its behaviour, as it may be undeterministic across multiple builds. This especially impacts scenarios where profiling results collected across multiple systems should be compared, as the benchmarking tool itself is an additional factor that needs to be considered when inter-machine deltas in the results need to be traced back. Due to the aforementioned shortcomings, and the need for energy-aware systems – and thus energy benchmarking tools – we present bench-rs, a free and open-source cross-platform benchmarking toolchain and a modern replacement for lmbench. Written in the memory-safe Rust programming language and with support for reproducible builds, bench-rs provides a modern and extensible interface for both performance and energy measurements.
- for groups of up to two students
- recommended prerequisites:
- interest in microcontroller programming
- interest in developing systems with peripheral devices, such as displays or NFC readers
- interest in energy- and ressource-aware software development
- prerequisites:
- experience with the programming language C
Additional Information: Slides
Contact: Benedict Herzog, M.Sc. (E-Mail)
- for groups of two to three students
- recommended prerequisites:
- interest in performance and energy-efficiency evaluations
- expercience with the Linux kernel and virtual machines (KVM/QEMU)
- prerequisites:
- experience with the programming language C
- the module „Betriebsststeme“ / familiarity with operating systems and corresponding concepts
Contact: Henriette Hofmeier, M.Sc. (E-Mail)