I. Introduction
Modern systems from petascale supercomputers to handheld devices must balance performance and power consumption. This often requires that the system have access to realtime power information. Hypervisors, operating systems, and runtime software can all use such information to execute workloads more efficiently.