BDPO (Bull Dynamic Power Optimizer)

Description

BDPO (Bull Dynamic Power Optimizer) is a job-oriented energy optimization tool. It is integrated with SLURM and BEO APIs. BDPO collects fine-grain performance-centric metrics, e.g. IPC and memory activity. It also performs precise in-band monitoring for efficiency metrics, like CPU energy consumption, in order to extend job data analysis provided by BEO. It offers an offline analysis mode, where applications are broken up into multiple representative patterns, highlighting the various recurring computations. These patterns are classified in terms of their energy footprint on the target hardware. BDPO can also dynamically adapt the CPU frequency based on these metrics in order to optimize the ratio performance/energy to solution.

Integration

Regarding monitoring, BDPO can be easily adapted to execute on different CPU or GPU architectures, as it is based on standardized Linux performance counters APIs and cpufreq kernel modules. In addition, BDPO can be integrated with the node manager and with runtime profiling interfaces, as is PMPI for MPI or OMPT for OpenMP.

Sophistication

Integrated with the node manager, BDPO can optimize energy to solution. Integrated with runtime profiling interfaces, BDPO can improve the quality of its decisions through application-context awareness. In REGALE, BDPO will leverage monitoring data using ML algorithms, to optimize the energy of HPC application online, by exploiting the detected patterns through fast adaptation strategies. Online energy optimization involves extensive modelling of the interactions between hardware components and the various computing patterns. Also, BDPO will integrate a mechanism to offer policy-oriented optimizations.