Abstract
Chip multiprocessors (CMPs) - also called multicores - have become the main architectural component for computing systems ranging from high-end servers to hand-held devices. CMPs enhance performance through parallelism by permitting multi-programmed/threaded workloads to run concurrently on the available computing cores. However, the power-performance trade-off due to frequency scaling of these cores cannot be determined independently as they share critical resources like L2/L3 cache as well as memory during execution. Thus, unlike the uni-processor environment, the energy consumption of an application running on a CMP depends not only on its characteristics but also its co-runners (applications running on other cores). In this work, we investigate an application's performance response to core and uncore frequency scaling and propose a learning-based model for determining a suitable uncore frequency. The model takes selected individual characteristics of the applications as input and suggests an optimal uncore frequency that would satisfy the overall QoS requirements.