Abstract
Additional transistors available in each process generation are used to increase the number of cores on chip. This trend results in high execution unit performance relative to other available resources, such as memory bandwidth, I/O bandwidth, and power. Consequently, the performance bottleneck in modern systems has shifted from the execution units to other resources. In this paper we propose a dynamic scheduling scheme that avoids bottlenecks and thus saves energy. Current operating system schedulers are designed to always assign threads to available cores. We show that this approach may result in excessive loads on other resources, which can ultimately hamper performance and waste energy. Thus, perhaps paradoxically, in some cases it may be advantageous to under-utilize on-chip computing resources in order to achieve better performance and energy efficiency. More generally, we argue that operating system schedulers should consider multiple resources, such as memory bandwidth, dynamic cache conflicts, and I/O bandwidth. We develop this concept in the context of memory bandwidth, which is a critical bottleneck in many systems. To this end, we suggest a model that predicts threads’ throughput and power consumption based on contention on the memory bus. We use this model to design EFS (Energy-Friendly Scheduler), a new energy-efficient scheduler, which schedules new threads only when the benefit of the added throughput outweighs the cost of powering up additional cores. The idea is simple, and we implement it in Linux using performance monitors readily available in current microprocessors. Execution results on a real multicore system with EFS show up to 32% energy reductions in resource-constrained SPEC-CPU2006 benchmarks, as measured using an external power meter.
Original language | English |
---|---|
Pages (from-to) | 3-14 |
Number of pages | 12 |
Journal | Journal of Parallel and Distributed Computing |
Volume | 95 |
DOIs | |
State | Published - Sep 2016 |
Keywords
- Energy Friendly Scheduler
- Energy efficiency
- Multicores
- Performance monitors
- Scheduling
All Science Journal Classification (ASJC) codes
- Software
- Artificial Intelligence
- Theoretical Computer Science
- Hardware and Architecture
- Computer Networks and Communications