  Reducing the energy expended to carry out a computational task is important.
In this work, we explore the prospects of meeting Quality-of-Service
requirements of tasks on a multi-core system while adjusting resources to
expend a minimum of energy. This paper considers, for the first time, a
QoS-driven coordinated resource management algorithm (RMA) that dynamically
adjusts the size of the per-core last-level cache partitions and the per-core
voltage-frequency settings to save energy while respecting QoS requirements of
every application in multi-programmed workloads run on multi-core systems. It
does so by doing configuration-space exploration across the spectrum of LLC
partition sizes and Dynamic Voltage Frequency Scaling (DVFS) settings at
runtime at negligible overhead. We show that the energy of 4-core and 8-core
systems can be reduced by up to 18% and 14%, respectively, compared to a
baseline with even distribution of cache resources and a fixed mid-range core
voltage-frequency setting. The energy savings can potentially reach 29% if the
QoS targets are relaxed to 40% longer execution time.
