Multi-core performance analysis and tracing
Summary:
How can we understand the runtime behaviour of complex systems on multicore machines? How should an operating system manage or multiplex hardware performance monitoring features?
Motivation:
Multicore hardware raises many challenges, not least of which is the need to analyse the runtime behaviour (both for debugging and performance analysis) of user programs and system services running concurrently on many cores. Hardware designers are adding increasingly sophisticated performance monitoring features, but techniques to make use of this data and integrate it with traditional debugging and tracing techniques are lacking.
Barrelfish is a new operating system being built for future multicore systems within the Systems Group. It includes initial support for hardware performance counters and a form of event tracing.
Goals:
Develop a tracing and performance monitoring framework for Barrelfish, with the aim of integrating information from hardware sources and software events (such as from libraries, language runtimes and OS services). Beyond this, the project is open-ended; options to be explored include:
- How to manage and multiplex hardware performance counters between multiple applications and uses
- Techniques to integrate and unify performance monitoring and trace data from multiple communicating cores
- Efficient low-level tracing and event processing mechanisms
- Real-time performance monitoring and adaptation
- Novel data visualisations or analysis techniques
- ...
Technologies:
C, hardware architecture, data analysis and visualisation, stream processing
Previous:
Online performance modelling of parallel applications



