Active Resource Management for Multi-Core Runtime Systems Serving Malleable Applications

Abstract

Malleable applications are programs that may run with varying numbers of threads and thus on varying numbers of cores because the exact number of threads/cores used is irrelevant for the program logic and typically determined at program startup.We argue that any fixed choice of kernel threads is suboptimal for both performance and energy consumption. Firstly, an application may temporarily expose less concurrency than the underlying hardware offers, leading to waste of energy. Secondly, the number of hardware cores effectively available to an application may dynamically change in multi-application and/or multi-user environments. This leads to an over-subscription of the available hardware by individual applications, costly time scheduling by the operating system and, as a consequence, to both waste of energy and loss of performance.We propose an active resource management service that continuously mediates betwen dynamically changing intra-application requirements as well as on dynamically changing system load characteristics in a near-optimal way.

Publication
Advances in Parallel Computing