geopm
3.1.1.dev296+g5916b956
GEOPM - Global Extensible Open Power Manager
|
Home Page | GEOPM Access Service | GEOPM Runtime Service | Reference Manual | Slack Workspace
Fine-grained low-latency batch access to power metrics and control knobs on Linux
The Global Extensible Open Power Manager (GEOPM) provides a framework to explore power and energy optimizations on platforms with heterogeneous mixes of computing hardware.
Users can monitor their system's energy and power consumption, and safely optimize system hardware settings to achieve energy efficiency and/or performance objectives.
With GEOPM, a system administrator can:
With GEOPM, an end user can:
GEOPM software is separated into two major components, the GEOPM Access Service and the GEOPM Runtime Service.
GEOPM Access Service: A privileged process that provides user interfaces to hardware signals and controls and admin interfaces to manage user access. C and C++ bindings to this interface are provided through [libgeopmd](libgeopmd). Python bindings are provided through the [geopmdpy](geopmdpy) package.
GEOPM Runtime Service: An unprivileged process that provides a framework to control platform settings based on feedback from signals and monitored application state. This process delegates platform interactions to the GEOPM Access Service. C and C++ bindings are provided through [libgeopm](libgeopm). Python bindings are provided through the [geopmpy](geopmpy) package.
Some simple use cases are illustrated below. See the Getting Started Guide for additional use cases in Bash, C, C++, and Python.
Read the current power consumption of all CPUs in the platform. The command will print the total power consumption (in Watts) summed across all CPUs on the board.
https://github.com/geopm/geopm.github.io/assets/378319/795b297e-7a45-47a8-bf67-3fdf8be9448e
Apply a 3.0 GHz maximum-allowed CPU core frequency to each CPU on the board. This setting will be automatically reverted when the user's session ends (e.g., when exiting the current shell).
https://github.com/geopm/geopm.github.io/assets/378319/0a4f2cf8-cebf-4556-b710-6c664568790d
Generate a CSV (comma-separated variable) trace of CPU core frequency versus time, sampling once every second for a total of 10 seconds:
https://github.com/geopm/geopm.github.io/assets/378319/382fbe44-5ab4-4c43-9173-982473ebccb8
Other use cases in the Getting Started Guide include:
We provide installable packages for Ubuntu, CentOS, openSUSE, and RHEL. Our build systems can also be used to install GEOPM from source.
More details are available in our Installation documentation page.
Follow the installation wizards described in our installation guide to install our latest release through dnf
or zypper
.
Follow the documentation in our developer build guide for details about how to configure the build process. Note that some dependency packages required for the C++ builds may be missing from your system. Refer to the requirements guide for details on the packages required for build on your operating system. In the bash script below we show a simple way to build and install all of the GEOPM packages from the source repository assuming that all build dependencies are installed system wide.
When building from source and configured with the --prefix
option, the libraries, and binaries will not install into the standard system paths. At this point, you must modify your environment to specify the installed location.
At a high level, major GEOPM releases are summarized as follows:
isst_interface
driver.Please refer to the ChangeLog.md for a more detailed history of changes in each release.
We appreciate all feedback on our project. See our contributing guide for guidelines on how to report bugs, request new features, or contribute new code.
Refer to the GEOPM Developer Guide for information about how to interact with our build and test tools.
The GEOPM source code is distributed under the 3-clause BSD license.
SEE [LICENSE-BSD-3-Clause](LICENSE-BSD-3-Clause) FILE FOR LICENSE INFORMATION.
2024 April 10
Christopher Cantalupo chris toph er.m. cant alupo @int el.co m
Brad Geltz brad. gelt z@int el.c om
Development of the GEOPM software package has been partially funded through contract B609815 with Argonne National Laboratory.