Metadata-Version: 2.3
Name: slurmray
Version: 6.0.2
Summary: SlurmRay is an official tool from DESI @ HEC UNIL for effortlessly distributing tasks on Slurm clusters (e.g., Curnagl) or standalone servers (e.g., ISIPOL09/Desi) using the Ray library.
License: Apache License
Keywords: ray,slurm,distributed-computing,hpc,desi,hec-unil
Author: Henri Jamet
Author-email: henri.jamet@unil.ch
Requires-Python: >=3.9,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: dill (>=0.3.7,<0.4.0)
Requires-Dist: inquirer (>=3.1.3,<4.0.0)
Requires-Dist: paramiko (>=3.3.1,<4.0.0)
Requires-Dist: pdoc3 (>=0.10.0,<0.11.0)
Requires-Dist: pip-chill (>=1.0.3,<2.0.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: ray[data,serve,train,tune] (>=2.7.1,<3.0.0)
Requires-Dist: rich (>=14.2.0,<15.0.0)
Requires-Dist: setuptools (>=80.9.0,<81.0.0)
Project-URL: Documentation, https://henri-jamet.vercel.app/cards/documentation/slurm-ray/slurm-ray/
Project-URL: Homepage, https://henri-jamet.vercel.app/
Description-Content-Type: text/markdown

# SlurmRay

**SlurmRay** is a powerful tool designed to simplify the execution of Python code on remote clusters (Slurm) and standalone servers. It automates the complex process of dependency management, environment setup, and job submission.

## Project Overview
- **Goal**: Effortslessly distribute Python tasks on Slurm clusters or standalone servers using the Ray library.
- **Status**: Stable (v6.0.1). Recent fix for deep dependency tracing and relative submodule imports.
- **Features**: Automatic deep dependency detection, incremental file sync, asynchronous execution, and multi-backend support.

## Main Entry Scripts
| Script | Purpose | Usage Example | Env Vars |
| :--- | :--- | :--- | :--- |
| `slurmray` | CLI entry point for project management and job monitoring. | `slurmray --help` | `SLURMRAY_CONFIG` |

*The `slurmray` command is the primary way to interact with the system once installed via pip or poetry.*

## Installation
1. **Prerequisites**: Python >= 3.9, Poetry (optional).
2. **Commands**:
```bash
pip install slurmray
```
*Installs the stable version of SlurmRay from PyPI.*

```bash
git clone https://github.com/lopilo/SLURM_RAY.git
cd SLURM_RAY
poetry install
```
*Prepares the development environment and installs dependencies in a virtual environment.*

## Key Results
| Benchmark | Cluster | Performance |
| :--- | :--- | :--- |
| Job Startup | Curnagl | < 5s (cached) |
| File Sync | ISIPOL | Incremental (HA-based) |

## Repository Map
```text
.
├── slurmray/         # Core package logic
│   ├── backend/      # Cluster/Server specific implementations
│   ├── scanner.py    # AST-based dependency tracer
│   └── file_sync.py  # Incremental file synchronization
├── tests/            # Automated test suite
├── documentation/    # Extended technical docs
└── pyproject.toml    # Project configuration and metadata
```

## Utility Scripts
*No additional utility scripts in `scripts/utils/` currently.*

## Roadmap
- **Enhanced Caching**: Implement more aggressive caching for large conda/venv environments to reduce startup time. *Estimated: 15h. Priority: High.*
- **Monitoring Dashboard**: Integration with a web-based UI for real-time job monitoring and log visualization. *Estimated: 40h. Priority: Medium.*
- **Docker Support**: Allow running jobs inside custom Docker containers on supported Slurm clusters. *Estimated: 25h. Priority: Low.*

