Skip to main content

Slurm Job Pruning

A maintenance tool for canceling stale jobs on Slurm clusters.

A command-line utility for Slurm administrators that identifies and cancels jobs which have been stuck in the PENDING state for longer than a configurable threshold. Affected users are notified by email, with all of their canceled jobs batched into a single message, and a dry-run mode is provided for previewing changes before applying them.

Install and Setup

Install the utility from the CRCD Python repository using pipx:

pipx install crc-prune-stale

Confirm the prune-stale utility is available in your runtime environment:

prune-stale --help

Optionally, create the application log directory to enable persistent file logging. If the directory is not present, or the log file cannot be opened, the application emits a warning and falls back to console-only logging:

mkdir -p /var/log/prune_stale

Logs are written to /var/log/prune_stale/prune_stale.log.

Usage

prune-stale [OPTIONS]

Targeting options

Control which cluster and partitions are queried for jobs.

Option Default Description
--cluster NAME local cluster Cluster name to query for jobs
--partition NAME ... all partitions One or more partition names to query. Omit for all partitions

The default cluster is resolved at startup from the local node's Slurm configuration (scontrol show config). If no cluster name can be determined, the application exits with an error.

Pruning options

Control which jobs are selected for cancellation.

Option Default Description
--threshold DAYS 10 Days a job must have been pending before cancellation
--dry-run off Log which jobs would be cancelled without taking any action

Job age is measured against the job's submit time as reported by squeue. Jobs with malformed or unparsable squeue output are skipped and logged as warnings.

Notification options

Control outbound email notifications.

Option Default Description
--smtp-host HOST SMTP relay hostname. Omit to disable email notifications
--smtp-port PORT 25 SMTP relay port
--email-from ADDRESS slurm-noreply@crc.pitt.edu Sender address for notification emails
--email-dmn DOMAIN pitt.edu Domain appended to usernames to form recipient addresses

Notifications are only sent when --smtp-host is provided and --dry-run is not set. SMTP failures are logged and do not abort the run.

Pass --help to see all options with their current defaults.

Examples

Cancel all jobs that have been pending for more than 10 days (no email notification):

prune-stale --threshold 10

Cancel jobs and issue an email notification to the job submitter:

prune-stale --threshold 10 --smtp-host mailrelay.pitt.edu

Restrict the run to specific partitions on a specific cluster:

prune-stale --cluster htc --partition standard high-mem

Preview what would be canceled without making any changes:

prune-stale --dry-run

Download files

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

Source Distribution

crc_prune_stale-0.3.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

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

crc_prune_stale-0.3.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for crc_prune_stale-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0ad47534a526a6f57e30a5ab86041212a1b03971fb9fbd1f1c75b375811498bf
MD5 c8fefb15fb66f2e4049507a6e93cabf2
BLAKE2b-256 07b5760f44c116252c598acd03f222c3496f2d02231eb257e06a90b1e0099dde

See more details on using hashes here.

File details

Details for the file crc_prune_stale-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for crc_prune_stale-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20a528a39a50c7b57665df441086da124ca50816ca4579624f9aab412b114e16
MD5 29e6550335c559a5ae5e74e3cab1f614
BLAKE2b-256 51f70d5ba23fed1b915c2e2e306aa147a1fe67eb4ba71f050c3d60006716e15b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.3

2 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