Chip Multiprocessors (CMPs) are ubiquitous in all computing systems ranging from high-end servers to battery-operated devices. Even though CMPs improve performance through concurrency, the contention for shared resources makes their performance and energy consumption unpredictable and inefficient. Predicting the inter-application resource contention is essential as it gives us valuable information based on which we can improve performance or reduce power consumption.
When applications slow down due to resource contention, their performance sensitivity to Dynamic Voltage and Frequency Scaling (DVFS) also reduces. Hence, the performance-energy trade-off curve of each application varies with its co-runners (applications running on other cores). In this work, we investigated applications' performance response to core and uncore frequency scaling in the presence/absence of resource contention. Then, we proposed a learning-based model for determining suitable core and uncore frequencies that satisfy specific user-defined QoS requirements.