Spack Guide

For users that leverage Spack to distribute software, recipes to build the geopm-service and geopm-runtime have been included in their v0.22.0 release. These recipes currently allow for building both the v3.0.1 release of GEOPM and our main development branch.

For deploying GEOPM’s layers to a compute image in an HPC system context (i.e. PXE booted via warewulf or similar), a typical configuration would be to have a system install of the service RPMs baked into the compute image, and use spack to install geopm-runtime. This is required as the GEOPM Service will be launched via systemd, and thus must run against the system installed Python runtime.

For GEOPM v3.0.1, system install geopm-service, geopm-service-devel, libgeopmd2, and python3-geopmdpy

For GEOPM v3.1, system install geopm-service, geopm-service-doc, geopm-service-devel, libgeopmd2, libgeopmd-doc, python3-geopmdpy, and python3-geopmdpy-doc

In order to build with spack this way, geopm-service must be configured as an external package in ~/.spack/packages.yaml:

packages:
  geopm-service:
    externals:
    - spec: "geopm-service@3.0.1"
      prefix: /usr
    - spec: "geopm-service@3.1.0"
      prefix: /usr
    - spec: "geopm-service@develop"
      prefix: /usr
    version:
    - 3.0.1
    - 3.1.0
    - develop
    buildable: False

Afterwards, geopm-runtime can be installed normally with spack install geopm-runtime.