The Slurm adapter¶
Run go/dispatch jobs on Slurm, over SSH to a login node or from the login node itself.
gitlab.com/phpboyscout/go/dispatch-slurm is the
Slurm adapter for go/dispatch. It turns a dispatch job into sbatch, reads Slurm's
state back as a typed cause rather than a bare "failed", holds and requeues jobs behind a deadline
that is checked on the cluster, and says "outcome unknown" whenever it cannot prove what happened.
It supports Slurm 25.11 and 26.05. Its transports are local, for a process on the login node,
and ssh, through your OpenSSH client. See Tested Slurm versions.
The design is recorded in
spec 0001, the Slurm adapter,
which is APPROVED. Where this section and the spec differ, this section describes the code.
Start here¶
Connect to a cluster and run preflight takes you from nothing to an open backend and a printed list of what your cluster supports.
Do a task¶
- Prepare a cluster for the adapter
- Configure the transports
- Open the adapter through dispatch
- Read a preflight result
- Choose deadlines, TTL and skew
- Run the conformance suite against sind
Understand it¶
- How identity works
- Holds as a far-future start time
- The deadline wrapper and the landing bound
- Why the decoders are strict
Look something up¶
- Configuration
- Capabilities and declarations
- How Slurm states become observations
- How a job becomes an sbatch submission
- Exit codes of the deadline wrapper
- Errors and error mapping
- Tested Slurm versions
- The Go API on pkg.go.dev
The other specs are in the project wiki.