EMPPACK (Energy Measurement and Profiling PACKage)
The future software development process will not just include runtime as the only performance metric. Instead, energy or power consumption of the software will also become part of the development process.
The underpinning component to enable this, will be the ability to reasonably profile and quantify the energy and power consumption of software applications. EMPPACK (Energy Measurement and Profiling PACKage), is a flexible and extensible software framework for profiling, quantifying and analysing the energy and power consumption of software applications.
EMPPACK (Energy Measurement and Profiling Package)
Capturing the runtime performance of an application or software is considerably straight-forward, and often facilitated by profiling tools and/or through explicit timing measurements. However, quantifying the energy consumption of software or parts of it is a novel challenge. This is the motivation for us to work on EMPPACK.
Contemporary systems are not fully equipped with energy or power profiling capabilities. Although this is being addressed in the upcoming systems (for example, RAPL counters in SandyBridge processors), measuring the power of energy consumption is not supported by all systems.
What EMPPACK can do/support:
- Supporting external energy measurements (sensors)
- Supporting performance counters including RAPL
- Supporting all GPUS (full nVidia driver support through NVML)
- Supporting Clusters of Nodes
- Supporting correlation and association of measurements
EMPPACK is a collection of tools (such a profilers, measurements, plotting/visualizing tools) and an API. This means that the software can be used just to measure system energy / power behavior or to measure the energy / power behavior of an entire application or parts of it (using API). We only support only C/C++ but FORTRTAN bindings will be made available very shortly.
How it Works?
EMPPACK is a standalone software – it has minimal dependency on external software or frameworks. However, it can be used in conjunction with PAPI or Paraver so that energy measurements and various other performance measurementscanbecollectedtogether. TherearetwomodesthatEMPPACK can operate.
Mode 1: Standard host-only measurement mode: This will enable energy measurements to be collected from the underlying hardware (if such a support is available). For example, energy measurement of the CPU using RAPL counters and/or of the GPUs using NVML. This is perfect for making quick measurements. However, overall system measurements are not possible due to lack of support from vendors.
Mode 2: Remote server measurement mode: When the profiling becomes much more complicated, relying on mode-1 is infeasible. For example, the simple mode will not be usable in the following scenarios,
- Overall system measurements are needed
- Overall systems measurements must be made across a number of nodes
- of a cluster
- Hardware based measurements must be made across a number of nodes
- of a cluster
In this case, EMPPACK has a server component (which can be run on any machine – it is not resource demanding) which acts a data collection engine for the EMPPACK. This profiled data can be accessed using the API functionality or using various tools inside the EMPPACK.
Projects where EMPPACK is used
- Primarily used as a basic building block for driving the energy efficient computing research.
- Various other HPC projects (such as OP2, industrial collaborations).
If you are interested in using EMPPACK, please get in touch with us.
The James Martin Foundation of University of Oxford, initially funded the EMPPACK development through a fellowship. However, at present, this developmental efforts are continued on a voluntary basis. If interested in contributing towards EMPPACK, please contact us.
- Jeyarajan Thiyagalingam, Anne Trefethen, Understanding the Interactions Hardware/Software Parameters on the Energy Consumption of Multi-Threaded Applications, OeRC Technical Report, 2012.
- Jeyarajan Thiyagalingam, Brian Duffy, Simon Walton, Min Chen, Complexity Plots, Transactions on Computer Graphics Forum and EuroVis2013, 32(3), 111-120, doi: 10.1111/cgf.12098, 2013.
- G.R. Mudalige, M.B. Giles, J. Thiyagalingam, I. Reguly, C. Bertolli, P.H.J. Kelly, A.E. Trefethen, Design and Performance of a High-level Unstructured Mesh Framework on Heterogeneous Parallel Systems, Journal of Parallel Computing, 39(11), 669 - 692, doi: http://dx.doi.org/10.1016/j.parco.2013.09.004, 2013.
- Anne Trefethen, Jeyarajan Thiyagalingam, Energy-Aware Software: Challenges, Opportunities and Strategies, Journal of Computational Sciences, 4(6), 444–449, doi: http://dx.doi.org/10.1016/j.jocs.2013.01.005, 2013.
- Albert Solernou, Jeyarajan Thiyagalingam, Mihai Duta, Anne Trefethen , The Effect of Topology-Aware Process and Thread Placement on Performance and Energy, International Conference in Supercomputing, 2013, Lecture Notes in Computer Science, 2013
- HPC-scaling and energy consumption of the global seismic wave-propagation code AxiSEM, Tarje Nissen-Meyer, Jeyarajan Thiyagalingam, Martin van Driel, Simon Staehler, General Assembly of European Geosciences Union, 2014
The EMPPACK is meant to be on BSD license. Although the software has not been released to public domain, it is available upon request. However, we intend to release this very shortly.
PowerPack is much more versatile software for energy or power profiling. The EMPPACK complements the PowerPack in several aspects and may co-exist with PowerPack.