Install Guide
This documentation covers how to use pre-built Linux OS packages to install
GEOPM for all users of a system, either using the latest stable release of GEOPM
or a development snapshot. The stable release packages are created as part of
the Git repository tag/release process. The development snapshot packages are
built by GEOPM’s GitHub CI process each time the dev branch is updated.
These OS packages are the right choice for system administrators deploying
the GEOPM Access Service for all users of a system. The
geopmd daemon runs as root, so it is installed from a stable, tagged
release and deliberately omits the optional Python dependencies that only
client-side tools require. Clients of an already-deployed Access Service who
want to run tools such as geopmopt – particularly on a
system where they do not have administrative privileges – can instead install
the geopmdpy Python package, which provides geopmopt and the other
client command-line tools, into a personal virtual environment with pip;
see Installing client tools with pip below.
GEOPM works with Intel GPUs when GEOPM is built with LevelZero support and NVIDIA GPUs when GEOPM is built with NVML support. Additional limited support for GPUs exists when the GPUs are visible in a Linux Direct Rendering Manager (DRM) sysfs interface. The Linux DRM interface is implemented for Intel GPUs. In the table below, “Intel GPU support” packages provide only the DRM interfaces and “Expanded Intel GPU support” packages also provide the LevelZero interfaces.
Install Latest Stable Release
Install packages from the latest stable release of GEOPM. These packages have been upstreamed into Fedora 42 and the openSUSE Hardware repository, and where applicable these distributions are recommended. For other scenarios, packages are published by the GEOPM development team on the main openSUSE Build System instance and through the Ubuntu Launchpad package build service.
GEOPM Access Service - Stable
Instructions on how to install the latest official release of the GEOPM
Access Service and its dependency packages are broken down by OS and OS
version. Note: the commands in this table should be run with sudo or as
the root user.
Note
For Rocky Linux and CentOS installations, the Extra Packages for Enterprise Linux (EPEL) repository must be enabled to satisfy dependencies that are not provided by the base distribution repositories. Follow the official EPEL enablement instructions in the Fedora documentation: https://docs.fedoraproject.org/en-US/epel/getting-started/
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.3/home:geopm:release.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.3/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/SLE_15_SP4/hardware.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.4/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.5/home:geopm:release.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.5/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/15.6/hardware.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.6/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.7/home:geopm:release.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.7/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/hardware.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/openSUSE_Tumbleweed/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Access Service python module
zypper install python3-geopmdpy
# SystemD service configuration and geopmd executable
zypper install geopmd
# C/C++ development files
zypper install libgeopmd-devel
# Man pages for GEOPM Access Service
zypper install geopmd-doc
# Man pages for C/C++ development
zypper install libgeopmd-doc
The GEOPM packages are native in Fedora but man pages are not published in the distribution. The man pages are published online, please see online documentation for the latest release.
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:/geopm:/release/CentOS_CentOS-9_Stream/home:geopm:release.repo
popd
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# Man pages for GEOPM Access Service
dnf install geopmd-doc
# Man pages for C/C++ development
dnf install libgeopmd-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:geopm:release:supplementary/CentOS_CentOS-9_Stream/home:geopm:release:supplementary.repo
popd
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# Man pages for GEOPM Access Service
dnf install geopmd-doc
# Man pages for C/C++ development
dnf install libgeopmd-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:/geopm:/release/RockyLinux_9_standard/home:geopm:release.repo
popd
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# Man pages for GEOPM Access Service
dnf install geopmd-doc
# Man pages for C/C++ development
dnf install libgeopmd-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:geopm:release:supplementary/RockyLinux_9_standard/home:geopm:release:supplementary.repo
popd
# GEOPM Access Service python module
dnf install python3-geopmdpy
# SystemD service configuration and geopmd executable
dnf install geopmd
# C/C++ development files
dnf install libgeopmd-devel
# Man pages for GEOPM Access Service
dnf install geopmd-doc
# Man pages for C/C++ development
dnf install libgeopmd-doc
# Add Launchpad PPA
add-apt-repository ppa:geopm/release
apt update
# GEOPM Access Service python module
apt install python3-geopmdpy
# SystemD service configuration and geopmd executable
apt install geopmd
# C/C++ development files
apt install libgeopmd-dev
# Man pages for GEOPM Access Service
apt install geopmd-doc
# Man pages for C/C++ development
apt install libgeopmd-doc
GEOPM Runtime Service - Stable
Instructions on how to install the latest official release of the GEOPM
Runtime Service and its dependency packages are broken down by OS and
OS version. Note: the commands in this table should be run with sudo or as
the root user.
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.3/home:geopm:release.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.3/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/SLE_15_SP4/hardware.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.4/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.5/home:geopm:release.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.5/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/15.6/hardware.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.6/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:/geopm:/release/15.7/home:geopm:release.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/15.7/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/hardware.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/home:geopm:release:supplementary/openSUSE_Tumbleweed/home:geopm:release:supplementary.repo
zypper refresh
# GEOPM Runtime Command Line Interface
zypper install geopm-cli
# GEOPM Runtime Agent development files
zypper install libgeopm-devel
# GEOPM Runtime post-processing scripts
zypper install python3-geopmpy
# Man pages for GEOPM Runtime Service
zypper install geopm-doc
# Man pages for C/C++ development
zypper install libgeopm-doc
GEOPM packages are native in Fedora but man pages are not published in the distribution. The man pages are published online, please see online documentation for the latest release.
The python3-geopmpy package is also not distributed with
Fedora, but may be installed on a per-user basis using pip:
# Some features of geompy require libgeopm
sudo dnf install libgeopm
# Use pip for single user installs only
python3 -m pip install --user geopmpy
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:/geopm:/release/CentOS_CentOS-9_Stream/home:geopm:release.repo
popd
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# GEOPM Runtime post-processing scripts
dnf install python3-geopmpy
# Man pages for GEOPM Runtime Service
dnf install geopm-doc
# Man pages for C/C++ development
dnf install libgeopm-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:geopm:release:supplementary/CentOS_CentOS-9_Stream/home:geopm:release:supplementary.repo
popd
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# GEOPM Runtime post-processing scripts
dnf install python3-geopmpy
# Man pages for GEOPM Runtime Service
dnf install geopm-doc
# Man pages for C/C++ development
dnf install libgeopm-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:/geopm:/release/RockyLinux_9_standard/home:geopm:release.repo
popd
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# GEOPM Runtime post-processing scripts
dnf install python3-geopmpy
# Man pages for GEOPM Runtime Service
dnf install geopm-doc
# Man pages for C/C++ development
dnf install libgeopm-doc
# Add yum repo
pushd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:geopm:release:supplementary/RockyLinux_9_standard/home:geopm:release:supplementary.repo
popd
# GEOPM Runtime Command Line Interface
dnf install geopm-cli
# GEOPM Runtime Agent development files
dnf install libgeopm-devel
# GEOPM Runtime post-processing scripts
dnf install python3-geopmpy
# Man pages for GEOPM Runtime Service
dnf install geopm-doc
# Man pages for C/C++ development
dnf install libgeopm-doc
# Add Launchpad PPA
add-apt-repository ppa:geopm/release
apt update
# GEOPM Runtime Command Line Interface
apt install geopm-cli
# GEOPM Runtime Agent development files
apt install libgeopm-dev
# GEOPM Runtime post-processing scripts
apt install python3-geopmpy
# Man pages for GEOPM Runtime Service
apt install geopm-doc
# Man pages for C/C++ development
apt install libgeopm-doc
Enable the GEOPM Access Service
Installing the geopmd package is the first step to enabling the GEOPM Access
Service. Unprivileged users will be unable to use the service until the access
lists have been configured by an administrator.
To guarantee that the GEOPM Access Service is up and will be enabled on reboot run the following commands:
sudo systemctl enable geopm
sudo systemctl start geopm
For full details about the GEOPM SystemD service see the administrator guide.
The geopmaccess(1) command line tool is used to configure the access lists. The linked manual page provides detailed documentation about how to set the access lists. A few examples are provided here as well.
To grant permissions to all non-root users to be able to use all of the features provided by the Service, execute the following commands:
geopmaccess -a | sudo geopmaccess -w
geopmaccess -a -c | sudo geopmaccess -w -c
These commands will create access lists in the system location that the Service will use to determine user privilege.
An administrator may use the --log (-l) option of geopmaccess to
restrict an access list to the set of values that have been used since last
restart by piping the output into geopmaccess -w:
geopmaccess -l | sudo geopmaccess -w
geopmaccess -l -c | sudo geopmaccess -w -c
For each tagged release of GEOPM, a list of all of the signal and control names
is created and stored in the GEOPM Git repository. An administrator may select
names from this list rather than querying for available signals with the
geopmaccess -a command line interface (note: all controls names are also
signal names).
Guides for Specialized Install
There are other installation scenarios that are not covered on this page which may be preferred in certain circumstances. See links below to supporting documentation if these situations apply to you.
Installing client tools with pip
The OS packages above install the root-owned GEOPM Access
Service daemon, which does not require the optional Python
dependencies used by client tools. A client of an already-deployed Access
Service – for example a user running geopmopt – can install
the geopmdpy Python package into a personal virtual environment instead.
The geopmdpy package provides geopmopt along with the geopmread,
geopmwrite, and geopmsession client tools. Installing it this way does
not require administrative privileges, and it lets a client:
pull in optional dependencies, such as the
optimizeextra that enablesgeopmopt(scikit-optimizeandpyyaml); andrun a development snapshot of the client tools on top of a stable, tagged Access Service release, so the root-owned daemon keeps executing vetted code while the client experiments with newer features.
# Create and activate a virtual environment
python3 -m venv geopm-venv
source geopm-venv/bin/activate
# Install the latest release of the client tools with the optimize extra
python3 -m pip install 'geopmdpy[optimize]'
# ...or install a development snapshot from the dev branch instead
python3 -m pip install \
'geopmdpy[optimize] @ git+https://github.com/geopm/geopm.git#subdirectory=geopmdpy'
Client tools installed this way communicate with whatever GEOPM Access Service
is already running on the system; the virtual environment affects only the
user-space client, not the root-owned daemon.
Install latest development snapshot
See the dev snapshot install guide for instructions on
how to install packages built by GitHub CI based on the latest commit to the
dev branch.
Some typical scenrios for installing development packages:
Try out new features of GEOPM and give feedback to the developers about your experience
Run integration testing against the latest implementation
Packaging local changes
See the build guide to create Linux OS packages for changes you have made locally to the GEOPM source code or build configuration. This more involved process should be followed if you would like to build packages that differ from the ones maintained by the GEOPM team.
Some typical scenarios for packaging local changes:
Installing GEOPM on an OS or OS version that is not supported by published packages, e.g. Debian
Configuring a GEOPM C++ library with options not supported by published packages, e.g. NVML support on openSUSE
Creating Docker containers that provide the GEOPM software with specific features enabled
Changing dependency software libraries e.g. enabling MPICH for MPI support
Deploying on a non-x86_64 architecture, e.g. packaging for aarch64
Installing for a single user
See the developer guide to build and install a version of GEOPM for your user, rather than system-wide. Note that many important features of the GEOPM software are not available without the GEOPM Access Service which requires administrative privileges to install and configure.
Some typical scenarios for installing for a single user:
Unit testing changes to the source code in a developer workflow
Using new client-side GEOPM features on a system where you do not have administrative privileges
Installing geopmpy Python module on systems without OS package support for dependencies
Installing using Spack
See the Spack guide for details on how to use the Spack Package Manager to build and install the GEOPM software. This can aid in resolving dependencies and installing multiple versions of software using the lmod system. Spack is a common solution for HPC centers to manage their software stack and dependencies.
Some typical scenarios for installing with Spack:
System administrator of a system that already relies on Spack to package other software.
A user trying to build GEOPM from source on a system without administrative permissions. Without root, the user cannot rely on the OS package manager to provide GEOPM build and runtime requirements, and Spack may be used to resolve these dependencies.