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.

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.

# Add zypper repo
zypper addrepo https://download.opensuse.org/repositories/hardware/SLE_15_SP3_Backports/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

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/hardware/SLE_15_SP3_Backports/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

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

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.

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.

Further Documentation