  Parallel applications often rely on work stealing schedulers in combination
with fine-grained tasking to achieve high performance and scalability. However,
reducing the total energy consumption in the context of work stealing runtimes
is still challenging, particularly when using asymmetric architectures with
different types of CPU cores. A common approach for energy savings involves
dynamic voltage and frequency scaling (DVFS) wherein throttling is carried out
based on factors like task parallelism, stealing relations and task
criticality. This paper makes the following observations: (i) leveraging DVFS
on a per-task basis is impractical when using fine-grained tasking and in
environments with cluster/chip-level DVFS; (ii) task moldability, wherein a
single task can execute on multiple threads/cores via work-sharing, can help to
reduce energy consumption; and (iii) mismatch between tasks and assigned
resources (i.e.~core type and number of cores) can detrimentally impact energy
consumption. In this paper, we propose ERASE (EneRgy Aware SchedulEr), an
intra-application task scheduler on top of work stealing runtimes that aims to
reduce the total energy consumption of parallel applications. It achieves
energy savings by guiding scheduling decisions based on per-task energy
consumption predictions of different resource configurations. In addition,
ERASE is capable of adapting to both given static frequency settings and
externally controlled DVFS. Overall, ERASE achieves up to 31% energy savings
and improves performance by 44% on average, compared to the state-of-the-art
DVFS-based schedulers.
