github.com/geopm/geopm

Global Extensible Open Power Manager

Open this visualization on its own page →

Contributors

26

Lines of Code

14,458

From

2015-09-16

To

2020-12-18

About geopm/geopm

GEOPM (Global Extensible Open Power Manager) is a comprehensive framework for monitoring and optimizing power and energy consumption on heterogeneous Linux systems, written primarily in C++ with bindings for Python and Go. It provides fine-grained, low-latency access to hardware power metrics and control settings, enabling users to read sensor values like CPU power consumption and adjust hardware parameters like frequency limits across diverse platform architectures.

The system is architected around two major components: the GEOPM Access Service, a privileged daemon that abstracts hardware signals and controls while enforcing administrator-defined access policies per user or group, and the GEOPM Runtime Service, an unprivileged process that implements automated control algorithms for power optimization based on application feedback and system state. For end users and application developers, GEOPM offers platform-agnostic interfaces to hardware controls, automatic detection of MPI and OpenMP phases for per-phase energy reporting, built-in control algorithms for efficiency optimization, and support for batched signal reads and writes to reduce operation latency.

GEOPM targets high-performance computing environments and system administrators managing complex hardware stacks. The project provides pre-built packages for Fedora, Ubuntu, CentOS, Rocky, openSUSE, and RHEL, extensive documentation including installation guides and API references, and an extensible plugin architecture allowing custom platform-specific interfaces and control algorithms. The codebase demonstrates maturity with version 3.0 extending support beyond MPI applications and earlier versions having introduced GPU interfaces and production-ready power management abstractions.

Share this video