The importance of energy efficiency is constantly increasing in High Performance Computing (HPC). While systems can be adapted to individual applications in order to reduce energy consumption, manual tuning of platform parameters is a tedious and often neglected task.
The READEX project automates this by developing a tools-aided methodology for dynamic auto-tuning that combines technologies from two ends of the computing spectrum: system scenario methodology from the embedded world and auto-tuning from the field of HPC.
READEX tools-aided methodology
The READEX methodology has been designed for exploiting the dynamic behaviour of software. At design time different runtime situations (RTS) are detected and optimized system configurations are determined. RTSs with the same configuration are grouped into scenarios, forming the tuning model. At runtime, the tuning model is used to switch system configurations dynamically.Impact and validation
To validate the impact of the READEX project, several real-world applications are employed. In a co-design approach, selected applications are being hand-tuned and both the improvements in energy efficiency and the effort spent will be compared with the automatic tuning approach.Design time analysis
Design time analysis (DTA) is carried out with the Periscope Tuning Framework (PTF). It uses a multi-agent-based approach to identify RTSs and to determine optimized system configurations. These are settings for tuning parameters, e.g., core and uncore frequencies. It also provides means for the specification of domain knowledge (DK) to improve the automatic tuning results. Part of the DK is the specification of application tuning parameters, which allows users to offload computation to accelerated devices. The result of DTA is a tuning model that guides runtime tuning.Runtime-tuning
During production runs of the user’s application, the READEX Runtime Library takes control. It is designed to apply the different configuration in a lightweight manor. Moreover, the READEX Runtime Library will be able to adapt to changing application behaviour. The latter is to be implemented by state-of-the-art machine learning mechanisms, which are currently under development.