Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This repository maintains the spank geopm plugin to support the GEOPM runtime with the SLURM resource manager.

The library from the main GEOPM repository is required. It can be found at, along with more specific documentation in


GEOPM provides two libraries: libgeopmpolicy and libgeopm. libgeopmpolicy contains tools for interacting with hardware signals and controls, such as geopmread, and the supporting library functions. libgeopm contains all of these functions and also provides tools for launching and interacting with MPI applications.

The libgeopmpolicy library must be available in order to set up a system with the GEOPM+SLURM static policy plugin. The SLURM plugin requires libgeopmpolicy alone; it does not use libgeopm or MPI. If the GEOPM runtime will be installed (including libgeopm and MPI launch tools), it should be installed in a different location, preferably using the module system. The packages are available through OpenHPC ( See the GEOPM runtime capabilities section in this guide.

A. To build libgeopmpolicy and a compatible

  • Obtain the source code for geopm from
  • Make sure no modules that will affect compilation are loaded in the environment:
module purge
  • Run configure with a local prefix that will be used to build the plugin:
./configure --disable-mpi --disable-fortran --prefix=$HOME/build/geopm-no-mpi
  • Build and install for use when building the SLURM plugin
make -j && make install
  • Build an RPM to be used to install libgeopmpolicy on the compute nodes. The output from this make command will indicate where the RPMs are located:
make rpm
./configure --with-geopm=$HOME/build/geopm-no-mpi --prefix=$HOME/build/geopm-slurm-plugin
  • Build the plugin:
make && make install

B. Install the libgeopmpolicy package in the compute nodes using the RPM. The library must be in a directory that is in the root user's library search path when the plugin runs (such as /usr/lib64), and this version of the library should be built against a toolchain available in the system default paths.

C. Install* into /usr/lib64/slurm on the compute nodes.

D. Create or update plugstack.conf in /etc/slurm on the compute nodes to contain the following:


The head node does not need plugstack.conf; if present, it should not contain any reference to

E. Update the SLURM configuration (/etc/slurm/slurm.conf) by adding /usr/lib64/slurm to PluginDir.

In a typical setup using Warewulf, slurm.conf will automatically be synchronized between head and compute nodes (refer to the OpenHPC documentation at If you are not using Warewulf, copy slurm.conf to the same location on the compute nodes.


Repository for SLURM related code that uses GEOPM




No releases published


No packages published