Skip to Main Content
This paper presents a tool to measure the power consumption of software programs running on computers with multiple input and output (I/O) components, such as disks and network-interface cards. The tool consists of two parts: 1) a monitor measuring the power of hardware components of the monitored computer and 2) a modified operating-system (OS) kernel in the monitored computer for information of software activities. The information is sent to the monitor for reconstructing the energy consumption of individual programs. This paper focuses on the software problem: How do we accurately assign the power samples to the software processes? A measurement-based method is used to synchronize the monitor and the monitored computer and a set of componentwise techniques to keep track of the programs' usage of each hardware component. Based on our experimental evaluation and comparison with the existing solutions, our tool raises the accuracy of energy assignment by up to 40% for programs with short CPU time slices and up to 90% for programs with I/O activities. This measurement tool can help the developers to analyze the software's energy characteristics more accurately and locate the energy-consuming spots more efficiently.