O

Profiling Energy and Power with the Allinea Energy Pack

What is the Allinea Energy Pack?

The Allinea Energy Pack enables developers and system administrators to optimize applications for energy and power as well as time.

Energy usage varies significantly according to the applications and workloads that are run:  Energy Packs enable system managers, developers and users to reduce energy costs

Energy profiling for Developers

Our performance profiler, Allinea MAP, is part of the Allinea Forge development tool suite for people who need to develop, debug, profile and optimize high performance code. 

The Energy Pack add-on for Allinea MAP allows developers to optimize applications for energy as well as time.

Measurements showed over time in Allinea MAP are:

  • Node power usage - shows the physical system power usage (see compatibility) per node and across all nodes in an application
  • CPU power usage - the cumulative power consumption of all CPUs on the node as measured by the Intel on-board sensor (Intel RAPL)
  • GPU power usage - the cumulative power consumption of all GPUs on the node as measured by the NVIDIA on-board sensor

Developers use Allinea MAP to zoom on areas of interest - and examine the impact of optimization on these areas. 

Energy profiling

In this example screenshot from Allinea MAP with the Energy Pack add on - processor level CPU power usage dips every time I/O (dark orange) is in progress.  Would it be possible to spread the I/O more evenly over time? 

NB - always consider the whole time usage of an application run. Using lower power for longer time may cost more than a run at higher power with a shorter duration. In the above screenshot, the CPU (green) and communication (blue) do not have the same impact - but we also see the application is spending a dominant amount of time in communication.  Reducing this will improve the overall energy usage, even if the peak power usage remains constant, and will have a greater impact on our whole cost.

Other areas of interest in applications can be:

  • Using a GPU will increase the peak node (system) power usage - but the cumulative energy use should be lower if a significantly faster run time results from using the GPU to offload computation.
  • Examining the CPU instruction and IO metrics to determine more optimal memory frequency.  MAP will show if your application is primarily waiting on I/O or memory access.  If your system supports frequency scaling and your processor is not receiving data from the I/O system or from memory fast enough to "feed" the processor, then a reduced processor frequency (leaving memory and I/O speed unchanged) can often reduce runtime.

Application Energy Reporting for Tuning and Benchmarking

Allinea Performance Reports provides a one page HTML report (with CSV and plain text) that measures and characterizes performance of production applications.  System administrators use Performance Reports to monitor application energy use and take action to reduce cost of wasteful applications. 

With the Energy Pack, Performance Reports includes the energy usage - and peak and average power requirement - of an application run. 

Energy reporting and advice in Allinea Performance Reports

In addition to measurement, the report provides guidance on what might help improve the application's energy footprint: many improvements do not require changing the software.

Are my systems compatible with the Allinea Energy Pack?

  • CPU power measurement requires an Intel CPU with RAPL support, e.g. Sandybridge and upwards (including Haswell and upcoming Broadwell chips). It also requires the intel_rapl powercap kernel module to be loaded. If the module is not loaded, an error is shown in place of the metric.
  • GPU power measurement requires an NVIDIA GPU that supports power monitoring. This can be checked on the command-line with "nvidia-smi -q -d power". If the reported power values are "N/A", power monitoring is not supported and the metric will show an error in MAP.
  • Node power monitoring supports:
    • IPMI - most modern servers support IPMI. The Energy Pack has support for IPMI-based power and energy reporting. Install the Allinea IPMI energy agent to enable this.
    • The Cray HSS energy counters are supported on XK6, XK7, XC30 and XC40 machines.
    • We have an open API allowing integration of other energy monitoring solutions. We continue to work with hardware vendors to increase the level of out-of-the-box support.
    • If no node-level power monitoring plugin is available, the warning message "The whole system energy has been calculated using the CPU and Accelerator usage" will be shown and the total energy will be the sum of the CPU and accelerator values.

Tell me more!

Further information on energy and power profiling, optimization and tuning can be found:

Trial licenses for Allinea Forge (including the Allinea MAP profiler) and Allinea Performance Reports are available from the trial registration page - existing customers, please contact your existing sales contact - or sales@allinea.com.