Improving the Energy Efficiency of Modern Computing Platforms using High-Resolution Real-Time Energy Measurements
High-performance computing platforms have become critical in meeting the demands of modern computing applications. Rising performance requirements in a broad range of platforms from mobile devices to server systems combined with the proliferation of these high-performance computing platforms has increased the energy costs incurred and lead to an exigent need for improvement in platform energy efficiency. This requires infrastructure for monitoring of energy consumption and methods to reduce the platform energy costs. In this dissertation, we present a new measurement infrastructure to provide real-time event-synchronized platform energy measurements, demonstration of these energy measurement capabilities through application to network data transport and an operating system task scheduler that utilizes these energy measurements to greatly improve energy efficiency for multi-core computing platforms.
The energy measurement infrastructure is integrated at the platform level and provides event-synchronized energy measurements for the complete platform along with important components such as the CPU, memory modules, secondary storage, peripherals and others. Furthermore, since modern secondary storage devices have buffering mechanisms that defer data write operations, the energy consumption of these operations is modeled and the model is integrated into the platform to characterize the impact of deferred operations.
The energy measurement capabilities are demonstrated through application to network data transport where a data file is transported over a network link. The data compression scheme is dynamically selected using real-time energy measurements during transport of the data file to enable adaptation to the dynamic system and network conditions. The energy cost of transporting the data file is significantly reduced through the use of this energy aware compression algorithm.
A novel task scheduler is presented and is designed to improve energy efficiency of multiprocessing platforms. It utilizes real-time energy measurements along with CPU performance monitoring units to identify inefficient tasks that suffer from co-run degradation due to resource contention. These inefficient tasks have their scheduling priority modified to avoid contention. Evaluation of the scheduler demonstrates large energy and execution time benefits on a quad-core platform.