Make sinfo --states parsing and listing table-driven _node_state_id() hand-coded a check for every node state flag, and the list of valid states reported on error kept a second hand-maintained copy, so both had to be touched whenever a node state flag was added -- and they had drifted from each other and from the man page. Drive both from the shared node_state_flags[] table: _node_state_id() matches flags with parse_node_state_flag(), and _node_state_list() enumerates the same table via node_state_flag_index(). A newly added flag then works with --states and is reported automatically. NODE_RESUME is excluded from both -- it is a transient action flag, not a state a node is reported in. The base-state loop, the combined DRAIN/DRAINED/DRAINING states, and a small set of legacy compact aliases (RESV, PLND, NO_RESPOND, BOOT, BOOT^, REBOOT^) not present in node_state_flags[] are kept explicitly. Every full state name and documented alias still parses; only a few ambiguous partial prefixes (e.g. "power", "c") now resolve in the canonical table order. The reported state list now uses the canonical name of each state; compact aliases still parse but are no longer listed. The drifted enumeration in the sinfo.1 man page is replaced with a reference to the NODE STATE CODES section. Ticket: 25499
This is the Slurm Workload Manager. Slurm is an open-source cluster resource management and job scheduling system that strives to be simple, scalable, portable, fault-tolerant, and interconnect agnostic. Slurm currently has been tested only under Linux.
As a cluster resource manager, Slurm provides three key functions. First, it allocates exclusive and/or non-exclusive access to resources (compute nodes) to users for some duration of time so they can perform work. Second, it provides a framework for starting, executing, and monitoring work (normally a parallel job) on the set of allocated nodes. Finally, it arbitrates conflicting requests for resources by managing a queue of pending work.
The official issue tracker for Slurm is at
: https://support.schedmd.com/
We welcome code contributions and patches. Please see the contributing guidelines for further details.
The top-level distribution directory contains this README as well as other high-level documentation files, and the scripts used to configure and build Slurm (see INSTALL). Subdirectories contain the source-code for Slurm as well as a test suite and further documentation. A quick description of the subdirectories of the Slurm distribution follows:
src/ [ Slurm source ]
: Slurm source code is further organized into self explanatory subdirectories such as src/api, src/slurmctld, etc.
doc/ [ Slurm documentation ]
: The documentation directory contains some latex, html, and ascii text papers, READMEs, and guides. Manual pages for the Slurm commands and configuration files are also under the doc/ directory.
etc/ [ Slurm configuration ]
: The etc/ directory contains a sample config file, as well as some scripts useful for running Slurm.
slurm/ [ Slurm include files ]
: This directory contains installed include files, such as slurm.h and slurm_errno.h, needed for compiling against the Slurm API.
testsuite/ [ Slurm test suite ]
: The testsuite directory contains an extensive collection of tests written for Check, Expect and Pytest.
auxdir/ [ autotools directory ]
: Directory for autotools scripts and files used to configure and build Slurm
contribs/ [ helpful tools outside of Slurm proper ]
: Directory for anything that is outside of slurm proper such as a different api or such. To have this build you need to do a make contrib/install-contrib.
Please see the instructions at
: https://slurm.schedmd.com/quickstart_admin.html
Extensive documentation is available from our home page at
: https://slurm.schedmd.com/slurm.html
Slurm is provided "as is" and with no warranty. This software is distributed under the GNU General Public License, please see the files COPYING, DISCLAIMER, and LICENSE.OpenSSL for details.