stop is a terminal-based dashboard for real-time monitoring of a Slurm cluster, inspired by top. It provides a quick and easy-to-read overview of your cluster's status, including partition load, node health, and job queues.
The application is built with Python using the Textual framework.
- Real-time Data: Fetches and displays data from
sinfo,squeue, andscontrolat a configurable interval. - Comprehensive Views:
- Partition Summary: Overview of nodes and CPUs per partition (total, idle, allocated).
- Node Summary: High-level statistics on nodes, CPUs, and memory.
- Job Summaries: Aggregated views of jobs by account and user.
- Pending Job Stats: Insights into max, median, and mean waiting times for pending jobs.
- Interactive Screens:
- An About page with application details.
- A Help page explaining key bindings and data tables.
- A Config page displaying the output of
scontrol show config.
- Customization:
- Configurable data refresh delay via the
--delayflag. - Dark and light mode support.
- Configurable data refresh delay via the
-
Clone the repository:
git clone <repository-url> cd stop
-
Install the application: Using
pip, you can install the application and its dependencies. This command also installs thestopexecutable and the associated man page.pip install .It is highly recommended to do this within a Python virtual environment.
Once installed, you can run the application by simply typing:
stop--delay SECONDS: Set the data refresh interval in seconds (default: 30).stop --delay 10
--help: Show the help message, including a list of key bindings.
A man page is included with the installation. View it with:
man stopThe application can be controlled with the following keys:
| Key | Action |
|---|---|
d |
Toggle dark/light mode |
q |
Quit the application |
a |
Show the "About" screen |
h |
Show the "Help" screen |
c |
Show the "Slurm Config" screen |
n |
Show the "Node List" screen |
p |
Show the "Partition List" screen |
Enter |
Show details for selected item in a list |
/ |
Search in lists |
ESC |
Exit search mode |
b |
Go back to the main screen (from other screens) |
To set up a development environment, clone the repository and install the project in editable mode with its development dependencies:
# Clone the repo (if you haven't already)
git clone <repository-url>
cd stop
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in editable mode with dev dependencies
pip install -e '.[dev]'The project uses pytest. To run the test suite:
uv run pytestThis project was developed with assistance from Google's Gemini.