Skip to main content

slurmpast

How your finished Slurm jobs actually ran — and what the next one should ask for.

PyPI CI Python 3.10+ 1029 tests MIT License

slurmpast overview: finished jobs rolled into workloads, ranked by resource use.

pip install slurmpast
slurmpast              # dashboard, last 7 days
slurmpast --sizing     # what to request next time, per workload
slurmpast 51170455     # one job, every field Slurm recorded
slurmpast --demo       # no Slurm to hand? synthetic cluster
sp                     # short alias

enter open · q back · digits jump to a row · / search · f filter · s sort · n nodes · p patterns · y copy · ? help

Before the run, slurmate builds the request. During it, slurmwatch watches. After it, slurmpast tells you what happened and what to change.


What to request next time

Over-requesting reserves capacity nobody else can use; under-requesting kills the run. Your own history settles both.

argonne35-pretrain   test · 101 runs
  --time            raise to 10:00:00   (from 08:05:00)
      longest of 90 completed runs took 07:58:23.
  --mem             already about right
  --cpus-per-task   already about right
  #SBATCH --time=10:00:00

That workload was running on a seven-minute margin. With fewer than three usable runs it says not enough evidence instead of guessing.

The figure it measures you against — 08:05:00 above — is the limit your last run asked for, not the largest in the window. Those differ the moment you tune a request, and the window is deliberately built to span that tuning: grouping ignores resource magnitudes, so that raising --mem does not fork the history you are trying to learn from.

One job

One finished job: time, CPU and memory against their limits, then every field Slurm recorded.

Time, CPU and memory against the limits you asked for, then every field Slurm recorded, the log excerpts if the files are still on disk, and the findings.

Failure, across runs

Per-node failure rates with a ready-to-paste --exclude.

seff describes one job and slurmwatch one live run. Neither can say "you submitted this 115 times and it died 99 times." Runs group into workloads, so a repeated failure — and the node it keeps landing on — is visible at a glance, with a ready-to-paste --exclude.

That --exclude is offered only when a node is worse than the rest after accounting for every other node the table tested. Without that correction a large enough history always produces a culprit: given twenty nodes with one identical true failure rate, testing each interval on its own named an innocent node more than half the time.

Correct on any cluster

sacct misreports in ways that are easy to miss: the requested memory is often blank, limits are recorded per allocation but enforced per node, and a job left in RUNNING inflates every total. slurmpast handles those, adapts to how your Slurm version spells things, and prints n/a rather than 0 for anything it cannot read.

Every trap, and the 85 fields it extracts →

As a library

The analysis modules import no third-party package.

from slurmpast import History, Sacct
from slurmpast.sizing import recommend

history = History(Sacct().history(user="you", since="now-30days"))
for advice in recommend(history.groups[0].jobs):
    print(advice.flag, advice.verdict, advice.suggestion)

--json emits everything — 174 values per job.


Slurm 20.11.8 · Python 3.10–3.13 · Textual 0.89–8.2 · MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slurmpast-0.4.0.tar.gz (259.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slurmpast-0.4.0-py3-none-any.whl (154.8 kB view details)

Uploaded Python 3

File details

Details for the file slurmpast-0.4.0.tar.gz.

File metadata

  • Download URL: slurmpast-0.4.0.tar.gz
  • Upload date:
  • Size: 259.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for slurmpast-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b98666e50a34974125b25d7253759734277e9bfd3f41bd23502bd6cbd6cc9a25
MD5 0a864e8ab284a4523846911b9f96908f
BLAKE2b-256 046f5d7aaaa8746a1356d62104956ad7c381ce07fc973188c2768cf009426fbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for slurmpast-0.4.0.tar.gz:

Publisher: release.yml on PursuitOfDataScience/slurmpast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slurmpast-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: slurmpast-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 154.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for slurmpast-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2bfe3a4a9ab5ea9b0ab178b6ba434c251eb890b396aeae8cac76a126f051d34
MD5 51b0760cef3191d872c0cd5d1a957cde
BLAKE2b-256 0d875189e0c22ce8fbbe70c88b3d40a17edc27efa12da394d56d8e94f23d796a

See more details on using hashes here.

Provenance

The following attestation bundles were made for slurmpast-0.4.0-py3-none-any.whl:

Publisher: release.yml on PursuitOfDataScience/slurmpast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page