The READEX project has been funded by the European Union’s Horizon 2020 research programme to develop a tools-aided methodology for dynamic auto-tuning for performance and energy-efficiency. The project brings together experts from two ends of the compute spectrum: the system scenario methodology from the embedded systems domain as well as the High Performance Computing community with the Periscope Tuning Framework (PTF). Detailed information on the background of the project can be found here.
The final software will consist of two parts: An extension to the Periscope Tuning Framework (PTF) for design-time analysis and the READEX Runtime Library (RRL) for tuning at runtime, e.g., during production runs.
Score-P will serve as a common infrastructure for both components as it provides the instrumentation and measurement of the HPC application. It is possible to extend the measurements done by Score-P using so-called metric plugins, e.g., to record energy and power consumption measurements.
Score-P reports these metrics to PTF using a so-called online access interface. PTF uses this information to create different Runtime Situation (RTS) and to make tuning decisions. It instructs Score-P to do the actual tuning, e.g., adjusting the processor frequency or changing of MPI parameters. It is possible to implement custom tuning knobs using so-called tuning plugins.
PTF will find the optimal configuration for each RTS and combine RTS with similar costs into so-called system scenarios. The information on the system scenarios and their optimal configurations are eventually stored in a tuning model.
During production runs, the RRL will predict the upcoming scenario and apply the optimal configurations based on the tuning model. A calibration step will be used to tune previously unseen RTS and to refine the existing tuning model.
We divide the tuning parameters into three different groups: hardware, runtime environment, and application level.
Hardware parameters describe all the parameters, that change the behaviour of the hardware, e.g., dynamically adjusting the frequency of the CPU cores. The READEX project will investigate other hardware parameters as well.
Most modern HPC applications are using MPI, OpenMP, or a hybrid form. We want to tune both environments as well, either through the MPI-T interface to control the MPI behaviour or by dynamically adjusting the number of threads used in OpenMP parallel regions.
The READEX project will investigate ways of exploiting tuning parameters on the level of the application, e.g., different code paths that provide similar results. For this purpose, the READEX User API will be developed that will allow users to expose parameters to the tuning system, which can then explore the design space of the application.