Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit



9 Commits

Repository files navigation


This project will no longer be maintained by Intel. Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. Intel no longer accepts patches to this project. GEOPM SPANK PLUGIN FOR SLURM

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

Contributors 4