jobmon-slurm


Namejobmon-slurm JSON
Version 2.0.0 PyPI version JSON
download
home_pagehttps://github.com/omonidat/jobmon-slurm
SummaryEnhanced Universal SLURM Job Monitor with smart pattern matching
upload_time2025-07-23 08:51:43
maintainerNone
docs_urlNone
authorShafeeq Ibraheem
requires_python>=3.6
licenseNone
keywords slurm hpc job monitoring cluster computing batch scheduler
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jobmon-slurm: Enhanced Universal SLURM Job Monitor

[![PyPI version](https://badge.fury.io/py/jobmon-slurm.svg)](https://badge.fury.io/py/jobmon-slurm)
[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)

A robust, user-friendly SLURM job monitoring utility that handles job name truncation, detects job completion status, and provides intelligent feedback for HPC environments.

## ๐Ÿš€ Quick Start

```bash
# Install (no admin required)
pip install --user jobmon-slurm

# Monitor all your jobs
jm

# Monitor specific job pattern (handles SLURM truncation)
jm dual_env_audit

# Monitor specific job ID
jm 41005547

# Quiet mode
jq pattern

# Debug mode for troubleshooting
jm -d pattern
```

## โœจ Features

### Smart Pattern Matching
- **Handles SLURM job name truncation automatically**
- `jm dual_env_audit` works even when SLURM shows `dual_env`
- Progressive fallback strategies (exact โ†’ shortened โ†’ partial)

### Enhanced Job Completion Detection
- **Uses `sacct` to check job history when queue is empty**
- Detects quickly-completed jobs that finish before monitoring starts
- Shows job exit codes and completion timestamps

### Intelligent User Feedback
- **๐ŸŽฏ COMPLETED**: Job finished successfully
- **๐Ÿ›‘ CANCELLED**: Job cancelled via `scancel`
- **โŒ FAILED**: Job failed during execution
- **โฐ TIMEOUT**: Job exceeded time limit
- **๐Ÿ”„ RUNNING**: Job currently executing

### Better Monitoring Experience
- **Real-time transitions**: Automatically moves from queue monitoring to output viewing
- **Helpful suggestions**: When searches fail, provides actionable alternatives
- **Debug mode**: `jm -d pattern` shows detailed search process

## ๐Ÿ“‹ Usage Examples

```bash
# Basic monitoring
jm                      # Monitor all your jobs
jm foldx               # Monitor jobs matching "foldx"
jm 41005547            # Monitor specific job ID

# Enhanced features
jm dual_env_audit      # Works despite SLURM name truncation
jm -d pattern          # Debug mode shows search process
jm -q pattern          # Quiet mode (less verbose)
jq pattern             # Short alias for quiet mode

# Advanced options
jm -u username         # Monitor another user's jobs
jm -i 5                # 5-second refresh interval
```

## ๐Ÿ”ง Installation Options

### Option 1: pip (Recommended)
```bash
pip install --user jobmon-slurm
```

### Option 2: Development Install
```bash
git clone https://github.com/omonidat/jobmon-slurm.git
cd jobmon-slurm
pip install --user -e .
```

### Option 3: Direct Script Install
```bash
# Download and install manually
wget https://raw.githubusercontent.com/omonidat/jobmon-slurm/main/install.sh
bash install.sh
```

## ๐Ÿ—๏ธ Requirements

- **SLURM environment** (uses `squeue`, `sacct`, `scancel`)
- **Python 3.6+** (for package management only)
- **Standard Unix utilities** (`bash`, `tail`, `grep`, etc.)

## ๐Ÿงช Examples in Action

### Cancelled Job Detection
```bash
$ jm my_job
# Start monitoring...
# User runs: scancel 41005547
# Monitor output:
==========================================
๐Ÿ›‘ JOB CANCELLED at Wed Jul 23 10:15:42 2025
==========================================
๐Ÿ’ก This job was cancelled (likely via 'scancel' command)
   If this was intentional, no further action needed
   If accidental, you may want to resubmit the job
```

### Smart Pattern Matching
```bash
$ jm dual_environment_audit_script
# Automatically tries:
# 1. "dual_environment_audit_script" (exact)
# 2. "dual_env" (SLURM truncated)
# 3. "dual" (shorter pattern)
# Shows which pattern worked in debug mode
```

## ๐Ÿค Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## ๐Ÿ“„ License

MIT License - see [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support

- **Issues**: [GitHub Issues](https://github.com/omonidat/jobmon-slurm/issues)
- **Discussions**: [GitHub Discussions](https://github.com/omonidat/jobmon-slurm/discussions)
- **Documentation**: [Full docs](https://github.com/omonidat/jobmon-slurm/wiki)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/omonidat/jobmon-slurm",
    "name": "jobmon-slurm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "slurm hpc job monitoring cluster computing batch scheduler",
    "author": "Shafeeq Ibraheem",
    "author_email": "omonidat@example.com",
    "download_url": "https://files.pythonhosted.org/packages/74/fb/d1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135/jobmon_slurm-2.0.0.tar.gz",
    "platform": null,
    "description": "# jobmon-slurm: Enhanced Universal SLURM Job Monitor\n\n[![PyPI version](https://badge.fury.io/py/jobmon-slurm.svg)](https://badge.fury.io/py/jobmon-slurm)\n[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)\n\nA robust, user-friendly SLURM job monitoring utility that handles job name truncation, detects job completion status, and provides intelligent feedback for HPC environments.\n\n## \ud83d\ude80 Quick Start\n\n```bash\n# Install (no admin required)\npip install --user jobmon-slurm\n\n# Monitor all your jobs\njm\n\n# Monitor specific job pattern (handles SLURM truncation)\njm dual_env_audit\n\n# Monitor specific job ID\njm 41005547\n\n# Quiet mode\njq pattern\n\n# Debug mode for troubleshooting\njm -d pattern\n```\n\n## \u2728 Features\n\n### Smart Pattern Matching\n- **Handles SLURM job name truncation automatically**\n- `jm dual_env_audit` works even when SLURM shows `dual_env`\n- Progressive fallback strategies (exact \u2192 shortened \u2192 partial)\n\n### Enhanced Job Completion Detection\n- **Uses `sacct` to check job history when queue is empty**\n- Detects quickly-completed jobs that finish before monitoring starts\n- Shows job exit codes and completion timestamps\n\n### Intelligent User Feedback\n- **\ud83c\udfaf COMPLETED**: Job finished successfully\n- **\ud83d\uded1 CANCELLED**: Job cancelled via `scancel`\n- **\u274c FAILED**: Job failed during execution\n- **\u23f0 TIMEOUT**: Job exceeded time limit\n- **\ud83d\udd04 RUNNING**: Job currently executing\n\n### Better Monitoring Experience\n- **Real-time transitions**: Automatically moves from queue monitoring to output viewing\n- **Helpful suggestions**: When searches fail, provides actionable alternatives\n- **Debug mode**: `jm -d pattern` shows detailed search process\n\n## \ud83d\udccb Usage Examples\n\n```bash\n# Basic monitoring\njm                      # Monitor all your jobs\njm foldx               # Monitor jobs matching \"foldx\"\njm 41005547            # Monitor specific job ID\n\n# Enhanced features\njm dual_env_audit      # Works despite SLURM name truncation\njm -d pattern          # Debug mode shows search process\njm -q pattern          # Quiet mode (less verbose)\njq pattern             # Short alias for quiet mode\n\n# Advanced options\njm -u username         # Monitor another user's jobs\njm -i 5                # 5-second refresh interval\n```\n\n## \ud83d\udd27 Installation Options\n\n### Option 1: pip (Recommended)\n```bash\npip install --user jobmon-slurm\n```\n\n### Option 2: Development Install\n```bash\ngit clone https://github.com/omonidat/jobmon-slurm.git\ncd jobmon-slurm\npip install --user -e .\n```\n\n### Option 3: Direct Script Install\n```bash\n# Download and install manually\nwget https://raw.githubusercontent.com/omonidat/jobmon-slurm/main/install.sh\nbash install.sh\n```\n\n## \ud83c\udfd7\ufe0f Requirements\n\n- **SLURM environment** (uses `squeue`, `sacct`, `scancel`)\n- **Python 3.6+** (for package management only)\n- **Standard Unix utilities** (`bash`, `tail`, `grep`, etc.)\n\n## \ud83e\uddea Examples in Action\n\n### Cancelled Job Detection\n```bash\n$ jm my_job\n# Start monitoring...\n# User runs: scancel 41005547\n# Monitor output:\n==========================================\n\ud83d\uded1 JOB CANCELLED at Wed Jul 23 10:15:42 2025\n==========================================\n\ud83d\udca1 This job was cancelled (likely via 'scancel' command)\n   If this was intentional, no further action needed\n   If accidental, you may want to resubmit the job\n```\n\n### Smart Pattern Matching\n```bash\n$ jm dual_environment_audit_script\n# Automatically tries:\n# 1. \"dual_environment_audit_script\" (exact)\n# 2. \"dual_env\" (SLURM truncated)\n# 3. \"dual\" (shorter pattern)\n# Shows which pattern worked in debug mode\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## \ud83c\udd98 Support\n\n- **Issues**: [GitHub Issues](https://github.com/omonidat/jobmon-slurm/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/omonidat/jobmon-slurm/discussions)\n- **Documentation**: [Full docs](https://github.com/omonidat/jobmon-slurm/wiki)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Enhanced Universal SLURM Job Monitor with smart pattern matching",
    "version": "2.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/omonidat/jobmon-slurm/issues",
        "Documentation": "https://github.com/omonidat/jobmon-slurm/blob/main/README.md",
        "Homepage": "https://github.com/omonidat/jobmon-slurm",
        "Source": "https://github.com/omonidat/jobmon-slurm/"
    },
    "split_keywords": [
        "slurm",
        "hpc",
        "job",
        "monitoring",
        "cluster",
        "computing",
        "batch",
        "scheduler"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "38521aa10c64e04d8d818e152d470979f4d17901448b3d091bbdfc8c56beac49",
                "md5": "5db9e8bf77281ef43a31a06961d38664",
                "sha256": "508e5782aea391631922fe193979c21aa7740412a998b937b6d6052373fedfe7"
            },
            "downloads": -1,
            "filename": "jobmon_slurm-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5db9e8bf77281ef43a31a06961d38664",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 10676,
            "upload_time": "2025-07-23T08:51:42",
            "upload_time_iso_8601": "2025-07-23T08:51:42.067746Z",
            "url": "https://files.pythonhosted.org/packages/38/52/1aa10c64e04d8d818e152d470979f4d17901448b3d091bbdfc8c56beac49/jobmon_slurm-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74fbd1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135",
                "md5": "5d1e06962fcba4aedd5ad2422a21a559",
                "sha256": "2deb5ae22c2a80d4d41491f0b20bca6bd7a2843bc12f88e0322ee2e445d382bf"
            },
            "downloads": -1,
            "filename": "jobmon_slurm-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5d1e06962fcba4aedd5ad2422a21a559",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 12867,
            "upload_time": "2025-07-23T08:51:43",
            "upload_time_iso_8601": "2025-07-23T08:51:43.101933Z",
            "url": "https://files.pythonhosted.org/packages/74/fb/d1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135/jobmon_slurm-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 08:51:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "omonidat",
    "github_project": "jobmon-slurm",
    "github_not_found": true,
    "lcname": "jobmon-slurm"
}
        
Elapsed time: 1.68511s