Variorum is an extensible, vendor-neutral library for exposing power and performance capabilities of low-level hardware dials across diverse architectures in a user-friendly manner. It is part of the ECP Argo Project, and is a key component for node-level power management in the HPC PowerStack Initiative. Variorum provides vendor-neutral APIs such that the user can query or control hardware dials without needing to know the underlying vendor’s implementation (for example, model-specific registers or sensor interfaces). These APIs enable application developers to gain a better understanding of power, energy, and performance through various metrics. Additionally, the APIs may enable system software to control hardware dials to optimize for a particular goal. Variorum focuses on ease of use and reduced integration burden in applications, which it accomplishes by providing:
Examples which demonstrate how to use Variorum in a stand-alone program.
A performance analysis sampler that runs alongside the application.
A JSON API to allow integration with higher-level system software, such as job schedulers, distributed monitoring frameworks, or application-level runtime systems.
Variorum Project Resources
Online Documentation https://variorum.readthedocs.io/
Github Source Repo http://github.com/llnl/variorum
Issue Tracker http://github.com/llnl/variorum/issues
Stephanie Brink (LLNL)
Aniruddha Marathe (LLNL)
Tapasya Patki (LLNL)
Barry Rountree (LLNL)
Kathleen Shoga (LLNL)
Code Of Conduct
This research was supported by the Exascale Computing Project (17-SC-20-SC), a joint project of the U.S. Department of Energy’s Office of Science and National Nuclear Security Administration, responsible for delivering a capable exascale ecosystem, including software, applications, and hardware technology, to support the nation’s exascale computing imperative.
- Variorum Overview
- Variorum API
- Example Programs
- Supported Platform Documentation
- Monitoring Binaries with Variorum
- Variorum Utilities
- Variorum Print Functions
- Variorum Cap Functions
- Variorum JSON-Support Functions
- Variorum Enable/Disable Functions
- Variorum Topology Functions
- Contributing Guide
- Variorum Developer Documentation
- Variorum Unit Tests
- Integrating with Variorum