geopm/geopm ↗
Created Dec 23, 2020 · View the geopm/geopm repository page
Global Extensible Open Power Manager
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
26
Lines of Code
14,458
From
Sep 16, 2015
To
Dec 18, 2020
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.