Abstract. As the HPC community attempts to reach exascale performance, power will be one of the most critical constrained resources. Achieving practical exascale computing will therefore rely on optimizing performance subject to a power constraint. However, this additional complication should not add to the burden of application developers; optimizing the run-time environment given restricted power will primarily be the job of high-performance system software. This paper introduces Conductor, a run-time system that intelligently distributes available power to nodes and cores to improve performance. The key techniques used are configuration space exploration and adaptive power balancing. Configuration exploration dynamically selects the optimal thread concurrency level and DVFS state subject to a hardware-enforced power bound. Adaptive power balancing efficiently determines where critical paths are likely to occur so that more power is distributed to those paths. Greater power, in turn, allows increased thread concurrency levels, the DVFS states, or both. We describe these techniques in detail and show that, compared to the state-of-the-art technique of using statically predetermined, per-node power caps, Conductor leads to a best-case performance improvement of up to 30%, and average improvement of 19.1%. The US government, as well as European and Asian agencies, have set a goal to reach exascale computing in less than 10 years. However, if we were to build an exascale machine out of today's hardware, it would consume half of a gigawatt of power [21, 13] and effectively require a dedicated power plant. In reality, there is a practical power bound, which is much tighter, and one such bound commonly used by both the research as well as the industrial high-performance computing (HPC) community is 20 megawatts [2] . It is clear that future HPC systems will have a whole-system power constraint that will filter down to job-level power constraints. The goal at the job-level will be to optimize performance subject to a prescribed power bound. HPC users have enough to handle with ensuring correctness and maintaining sufficient performance, so the task of enforcing the job level power bound should be left to
The work in REF emphasizes conductor, which is a runtime system that dynamically distributes available power to the different compute nodes and cores based on the available slack to maximize performance.
A Run-Time System for Power-Constrained HPC Applications
ISC
Computer Science