Using the Greenup, Powerup And Speedup Metrics To Evaluate Software Energy Efficiency
MetadataShow full metadata
Green computing has made significant progress in the past decades, which is evidenced by more energy efficient hardware (e.g. low power CPUs, GPUs, SSDs) and better power management and cooling techniques at data centers. However, the energy efficiency of software has not been improved much. The majority of software developers do not know how to reduce the energy consumption of programs due to the lack of easy-to-use measurement tools, effective evaluation metrics, in-depth knowledge on the correlations between performance and energy when optimizing software for better efficiency. This thesis proposes the Greenup, Powerup, and Speedup (GPS-UP) metrics to systematically evaluate the energy efficiency of serial and parallel applications. The GPS-UP metrics transform the performance, power, and energy of a program into one of the eight categories on the GPS-UP energy efficiency graph. Four of those categories are green (i.e., save energy) and four are red (i.e., waste energy). Using GPS-UP, we study the effect of running code with different programming languages, altering algorithms, using DVFS, changing compiler optimizations, and changing the number of ranks in MPI programs. We show which techniques improve performance more than energy efficiency, which techniques improve energy efficiency more than performance, and which techniques hurt performance and energy efficiency instead of improving them. In addition to applying the GPS-UP metric to serial and parallel programs running on a single node, we demonstrate the usability of GPS-UP for MPI programs, which are executed on multiple nodes. We accurately measure the energy consumption of MPI programs. Moreover, we explore the possibility of using machine learning algorithms to build models that can predict the optimal number of ranks of MPI programs (for either minimal power waste or for acceptable tradeoffs between performance gain and energy penalty).