Skip to main content

seamm_slurm

GitHub Actions Build Status

Now a compatibility shim. Everything here moved to seamm_scheduler, which generalizes it to other queueing systems (PBS, ...). Every module of seamm_slurm re-exports from there, so existing code keeps working; new code should import seamm_scheduler.

A small library that wraps the SLURM command-line tools (sbatch, squeue, sacct, scancel) behind one interface, SlurmBackend, with two transports:

  • LocalSlurm -- runs the SLURM CLI directly on the current host (the host running the code is itself a SLURM submit host, e.g. a cluster head/login node).
  • SshSlurm -- runs the same commands on a remote host over passwordless SSH (the host running the code is not a SLURM submit host).

Both transports share the same submit/poll/cancel logic and SLURM-version handling (some clusters support squeue --json/sacct --json, others only have plain columnar output -- this library prefers JSON when available and falls back to --parsable2/--format= text parsing otherwise, transparently to the caller).

submit() takes the full script text (shebang, #SBATCH directives, payload) and feeds it to sbatch --parsable on stdin -- it never needs the script to exist as a file on the target host, so submission works identically whether the caller and the SLURM cluster share a filesystem or not. seamm_slurm.script.build_script() is a small helper for building that script text from a directives dict (partition/account/qos/nodes/ntasks/time/ mem/gpus/...) plus a payload command, matching the <root>/<jobserver-name>.ini config shape used by seamm_jobserver.

poll_many() takes a batch of SLURM job IDs (not one call per job) and returns a JobStatus per ID, merging live state from squeue with historical/terminal state from sacct -- sacct is the source of truth once a job has left the live queue.

seamm_slurm.config reads a JobServer's <root>/<jobserver-name>.ini (load_slurm_config/SlurmSection) -- the same system/machine config file seamm_jobserver itself uses, moved here so any dependency-light consumer (a future job-submission UI, for instance) can read and validate it without pulling in the rest of the SEAMM stack. Includes an optional [<section>.limits] companion section and SlurmSection.merge_overrides(), for sites that want to let a job override some of the section's defaults (cores, memory, walltime, ...) within enumerated choices or numeric/size/ time bounds -- secure by default, nothing is overridable unless a site's .limits section says so.

This package intentionally has no SEAMM-core/molsystem/dashboard dependency and no notion of SEAMM's own job-status vocabulary -- it only speaks SLURM's. seamm_jobserver's whole-flowchart SLURM submission mode is the first consumer, validated end-to-end against a real cluster; a future seamm_exec Slurm executor (per-step submission) is expected to reuse the same backend rather than duplicating the SLURM-CLI handling.

See docs/developer_guide/campaigns/2026-08-06/index.rst in this repo, and seamm_jobserver's own docs/developer_guide/campaigns/2026-08-05/ (the full cross-repo SLURM-integration campaign, moved there from a workspace-level scratch doc), for the design rationale.

Metadata

Release files for seamm-slurm 2026.10.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seamm-slurm 2026.10.2
File Size Uploaded
seamm_slurm-2026.10.2.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seamm-slurm 2026.10.2
File Interpreter ABI Platform
seamm_slurm-2026.10.2-py3-none-any.whl Python 3 none any Details

Total release size: 34.0 kB

Release files / seamm_slurm-2026.10.2.tar.gz

Download URL seamm_slurm-2026.10.2.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2e0c6a746f573d6066b852fb82959e9e1826449d5c40efcad1bc078733996085
BLAKE2b-256 checksum
How to use checksums
73e493506b88c1708beed94c5732d634481117890039d8d8205b2fa0928c0be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / seamm_slurm-2026.10.2-py3-none-any.whl

Download URL seamm_slurm-2026.10.2-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8fb9d99a9a3c9ddc0ae1f1eaad72e6bbc8b8a2ffd48f3fd2b1a6a8ee520d41d8
BLAKE2b-256 checksum
How to use checksums
2f11cb28055c55fb7529922dbe0a4a4f05214a4574e4e3a5cea5a7c856a79013
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

2026.10.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page