ICC Home Privacy and Legal Notice LC User Documents Banner


SLURM Reference Manual

Portability (Plugins)

SLURM achieves portability (hardware independence) by using a general plugin mechanism. SLURM's configuration file tells it which plugin modules to accept.

A SLURM plugin is a dynamically linked code object that the SLURM libraries load explicitly at run time. Each plugin provides a customized implementation of a well-defined API connected to some specific tasks.

By means of this plugin approach, SLURM can easily change its:

  • interconnect support (default is Quadrics QsNet).
  • security techniques (default is to use crypto techniques to authenticate services to users and to each other).
  • metabatch scheduler (default is LC's LCRM/DPCS, with a "Grid" resource broker as an easy alternative).
  • low-level job scheduler for locally prioritizing and initiating SRUN-managed jobs.
  • between-node communication "layers" (default is Berkeley sockets).

SLURM plugins (on relevant machines) are also how the SLURM utility SRUN supports special task-affinity and NUMA (NonUniform Memory Access) control options (to impose job constraints that can only be fulfilled on machines with NUMA hardware). See the "Affinity or NUMA Constraints" section below for implementation details.

Navigation Links: [ Document List ] [ HPC Home ] [ Previous ] [ Next ]