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.2.2.tar.gz (10.1 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.2.2-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: crc_prune_stale-0.2.2.tar.gz
  • Upload date:
  • Size: 10.1 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.2.2.tar.gz
Algorithm Hash digest
SHA256 6087d6ddf75194f55c439052ab73125c509022473455a19d4325c8bb812a3521
MD5 f7ce466e7606ccb5497312104757b8f9
BLAKE2b-256 a1e048f759afb35ed2b358df1c998f19ddd97a419ba1f754648dbbe66a64a288

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crc_prune_stale-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5cd8896dcbfb3b61d3150d5e02f97b811880c09e0c2ce40bcc63c5ca3bfe18f6
MD5 d5b5df2b9acf11d130eb793ef4e7fc6d
BLAKE2b-256 e836a48ca6f6f47ffd8ecceda615f0813b6ae5afaa8b4d58e8a450469e2ce1ce

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

This release

0.2.2 This release

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