Each row links to the adapter's own page, which has the detail. Both adapters register themselves
with dispatch.Register when imported, under the names slurm and kubeflow.
an account that can submit jobs, and the commands preflight checks for; a cessation command of the site's own, if it wants one
Kubeflow Trainer and JobSet; in Kueue mode, Kueue, an AdmissionCheck on the ClusterQueue and the dispatch-admission controller (choose Kueue mode or plain mode)
reads the cluster on every open; on a writable open, submits a held probe job and tests holds and accounting, unless a fresh cached result exists (read a preflight result)
checks the API group-versions and permissions, proves the readmission gate in Kueue mode, and on a writable open creates a probe TrainJob that can't run and watches it for ten seconds (read a preflight result)
Observe-only
no such mode: a cluster that fails preflight is refused, or opens with the capability lowered
when a gate isn't proven, or it may read but not write: reads work, Start is ErrUnsupported, other writes ErrReadOnly
Answers as each adapter gives them, declared unless marked. Where an answer depends on the
cluster, the cell says what decides it. ReadmissionGate is on each adapter's page.
Capability
Slurm
Kubeflow
ContainerImage
no
yes
NativeRequeue, NativeRestart
no
no
Hold
probed by the preflight probe
probed by the preflight probe; no when observe-only, unknown when read-only
PreTerminationSignal
yes: SIGTERM, then SIGKILL after KillWait
unknown, from the catalogue: terminationGracePeriodSeconds, with SIGTERM delivery not observed
AccountingHistory
probed with sacct
no: a deleted TrainJob is gone
AttemptInjection
yes
yes in plain mode; in Kueue mode, probed with the readmission gate
WorkingDirectory
yes
yes, through the prologue
ProcsPerNode
yes
per runtime: yes for a torch runtime, no for one with no ML policy, unknown otherwise
OutputPath
yes
no
OutputRead, OutputFollow
yes
yes, rank 0's log of the current execution; no without pods/log