In this video from the POP HPC group, Lubomir Riha from IT4Innovations presents: Energy Efficient Computing using Dynamic Tuning.
We now live in a world of power-constrained architectures and systems and power consumption represents a significant cost factor in the overall HPC system economy. For these reasons, in recent years researchers, supercomputing centers and major vendors have developed new tools and methodologies to measure and optimize the energy consumption of large-scale high performance system installations. Due to the link between energy consumption, power consumption and execution time of an application executed by the final user, it is important for these tools and the methodology used to consider all these aspects, empowering the final user and the system administrator with the capability of finding the best configuration given different high level objectives.
This webinar focused on tools designed to improve the energy-efficiency of HPC applications using a methodology of dynamic tuning of HPC applications, developed under the H2020 READEX project. 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.
The MERIC tool, that implements the READEX methodology, is presented. It supports manual or binary instrumentation of the analysed applications to simplify the analysis. This instrumentation is used to identify and annotate the significant regions in the HPC application. Automatic binary instrumentation annotates regions with significant runtime. Manual instrumentation, which can be combined with automatic, allows code developer to annotate regions of particular interest.
MERIC at first performs the parameter space search for hardware parameters for all significant regions. The CPU DVFS (dynamic voltage and frequency scaling), CPU uncore (non-core parts of the CPU, e.g. cache, memory controller) frequency and number of active CPU cores are tuned. For every tested combination, MERIC records the runtime and energy consumption for further analysis.
In the second step we use RADAR tool, that analyses the data for all significant regions and identifies the optimal configurations. These are than used to create tuning model for production runs of the HPC application. If the developer is interested in inspecting the behaviour of an HPC application, RADAR also presents the recorded data using its graphic user interface (GUI). The GUI shows how the runtime and energy consumption per region changes with tuning of hardware parameters.
Finally, having the tuning model, the analysed application is prepared for production runs. In this scenario MERIC will read the tuning model and performs the dynamic tuning (applying the tuning model) as a HPC application progresses from one significant region to another.
This methodology has been thoroughly evaluated within the READEX project using both benchmark applications and HPC applications, and the results are shown in the Table 1. All applications have been built with the Intel compiler. One can see that approximately 20% of energy savings is achieved across the various applications and we believe that similar savings can be achieved by new applications without any code modification.
Lubomir Riha, Ph.D. is the Head of the Infrastructure Research Lab at IT4Innovations National Supercomputing Center. Previously he was a senior researcher in the Parallel Algorithms Research Lab at IT4Innovations and a research scientist in the High Performance Computing Lab at George Washington University, ECE Department. Currently he is a local principal investigator of the H2020 Center of Excellence, POP.