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.3.0.tar.gz (247.2 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.3.0-py3-none-any.whl (150.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for slurmpast-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f3b2910121db5047839f2f6e16b1cbc0719130a288106fab2552cd73598f38ec
MD5 7c8f961a9209d2e03431f83e6c048d59
BLAKE2b-256 fae58065d04ef5bb0f20b04ebf9c4250d439099497b15601b061a938f113983d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slurmpast-0.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: slurmpast-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 150.1 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3e248c7b225707eb18d10325db8d1a94bc9141aa004eaf96893d2d48b1b917
MD5 9068a064aed7822d818ee441422937bf
BLAKE2b-256 1c6d83a0bbed50032a5781bf0ca145c99d6240478bb7171894adb0fd92316c32

See more details on using hashes here.

Provenance

The following attestation bundles were made for slurmpast-0.3.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