# Download

SLURM source can be downloaded from http://sourceforge.net/projects/slurm/
SLURM has also been packaged for Debian and Ubuntu (both named slurm-llnl).

Other software available for download includes

- PAM Modules (pam_slurm)
  Pluggable Authentication Module (PAM) for restricting access to compute nodes where SLURM performs resource management. Access to the node is restricted to user root and users who have been allocated resources on that node. pam_slurm is included within the SLURM distribution for version 2.1 or later. For earlier SLURM versions, pam_slurm is available for download from
  https://sourceforge.net/projects/slurm/
  SLURM's PAM module has also been packaged for Debian and Ubuntu (both named libpam-slurm).
- SPANK Plugins
  SPANK provides a very generic interface for stackable plug-ins which may be used to dynamically modify the job launch code in SLURM. SPANK plugins may be built without access to SLURM source code. They need only be compiled against SLURM’s spank.h header file, added to the SPANK config file plugstack.conf, and they will be loaded at runtime during the next job launch. Thus, the SPANK infrastructure provides administrators and other developers a low cost, low effort ability to dynamically modify the runtime behavior of SLURM job launch. As assortment of SPANK plugins are available from
  http://code.google.com/p/slurm-spank-plugins/.
  The current source for the plugins can be checked out of the subversion repository with the following command:
  svn checkout http://slurm-spank-plugins.googlecode.com/svn/trunk/ slurm-plugins
- I/O Watchdog
  A facility for monitoring user applications, most notably parallel jobs, for hangs which typically have a side-effect of ceasing all write activity. This faciltiy attempts to monitor all write activity of an application and trigger a set of user-defined actions when write activity as ceased for a configurable period of time. A SPANK plugin is provided for use with SLURM. See the README and man page in the package for more details. Download the latest source from:
  http://io-watchdog.googlecode.com/files/io-watchdog-0.6.tar.bz2

# Related Software

- Authentication plugins identifies the user originating a message.

- authd
- Munge (recommended)
  In order to compile the "auth/munge" authentication plugin for SLURM, you will need to build and install Munge, available from http://home.gna.org/munge/ or Debian or Ubuntu.

- Databases can be used to store accounting information. See our Accounting web page for more information.

- MySQL (recommended)
- PostgreSQL

- Digital signatures (Cypto plugin) are used to insure message are not altered.

- Munge (recommended)
  Munge can be used at an alternative to OpenSSL. Munge is available under the Gnu General Public License. See Munge download information above.
- OpenSSL
  OpenSSL may be used as an alternative to Munge for generation of digital signatures. Download it from http://www.openssl.org/.

- Interconnect plugins (Switch plugin)

- QsNet
  In order to build the "switch/elan" plugin for SLURM, you will need the qsnetlibs development libraries from Quadrics. The Elan plugin also requires the libelanhosts library and a corresponding /etc/elanhosts configuration file, used to map hostnames to Elan IDs. The libelanhosts source is available from https://sourceforge.net/projects/slurm/.

- MPI versions supported

- ChaMPIon, MPI Software Technology
- HP-MPI
- LAM/MPI
- MPICH1
- MPICH2
- MPICH-GM
- MPICH-MX
- MVAPICH
- MVAPICH2
- Open MPI
- Quadrics MPI

- External schedulers offering control over the workload

- Catalina a scheduler supporting the Open Grid Forum Advance Reservation API
- Load Sharing Facility (LSF)
- Maui Scheduler
- Moab Cluster Suite

- Scripting interface
  - A Perl interface is included in the SLURM distribution in the contribs/perlapi directory and packaged in the perapi RPM.
  - PySlurm is a Python/Pyrex module to interface with SLURM. There is also a Python module in the SLURM distribution to expand and collect hostlist expressions at contribs/python/hostlist.
- Debuggers and debugging tools

- TotalView is a GUI-based source code debugger well suited for parallel applications.
- Padb is a job inspection tool for examining and debugging parallel programs, primarily it simplifies the process of gathering stack traces but also supports a wide range of other functions. It's an open source, non-interactive, command line, scriptable tool intended for use by programmers and system administrators alike.

- Task Affinity plugins

- Portable Linux Processor Affinity (PLPA)

Last modified 10 August 2009