Provides ability to run against Slurm
Project description
idmtools-platform-slurm
Table of Contents
- Introduction
- Setting Up Virtual Environment
- Development Tips
- Manually run a script as a Slurm job
- Use SlurmJob to run a script as a Slurm job
- With SlurmPlatform to run a script as a Slurm job
- Folder structure:
Introduction
SlurmPlatform is a platform designed to facilitate the execution of experiments and simulations in slurm cluster.
Setting Up Virtual Environment
To set up a virtual environment for SlurmPlatform, follow these steps:
-
Install Python
Ensure you have Python 3.8+ installed on your system.
-
Create Virtual Environment
There are multiple ways to create a virtual environment. Below is an example using
venv:python -m venv slurm_env
-
Activate Virtual Environment
- On Windows:
slurm_env\Scripts\activate
- On Linux:
source slurm_env/bin/activate
- On Windows:
-
Install SlurmPlatform
pip install idmtools-platform-slurm --index-url=https://packages.idmod.org/api/pypi/pypi-production/simple
-
Install Dependencies
pip install -r requirements.txt
-
Optional(No need step #4 and #5), Install all slurm platform related packages
pip install idmtools[slurm] --index-url=https://packages.idmod.org/api/pypi/pypi-production/simple
Development Tips
There is a Makefile file available for most common development tasks. Here is a list of commands
clean - Clean up temproary files
lint - Lint package and tests
test - Run All tests
coverage - Run tests and generate coverage report that is shown in browser
On Windows, you can use pymake instead of make
Manually run a script as a Slurm job
Preparation
(1).Have target script ready, say my_script.py, suppose you have folder structure like::
script_folder
my_script.py
......
(2). Created a virtual environment and activated it.
Steps
- within the target script folder, create a batch file 'sbatch.sh' (without quote) with content:
#!/bin/bash
#SBATCH --partition=b1139
#SBATCH --time=10:00:00
#SBATCH --account=b1139
#SBATCH --output=stdout.txt
#SBATCH --error=stderr.txt
# replace with your script file
python3 my_script.py
exit $RESULT
Note: the content here is based on Northwestern University QUEST Slurm system. For general case, above content (required #SBATCH parameters) may be a little bit different.
-
run your target script as SLURM job execute the following commands from console (under virtual environment):
cd path_to_script_folder
sbatch sbatch.sh
Note: any output information from my_script.py is stored in file stdout.txt under the current folder. For example, if my_script.py kicks out another Slurm job, then its Slurm id information can be found in file stdout.txt.
Use SlurmJob to run a script as a Slurm job
The example can be simple as the following:
--script.py--
from idmtools.core.platform_factory import Platform
from idmtools_platform_slurm.utils.slurm_job.slurm_job import SlurmJob
script = '<user script path>'
# script = 'example_path/python_sim_slurm.py' # example
platform = Platform('SLURM_LOCAL', job_directory='<job_directory>')
sj = SlurmJob(script_path=script, platform=platform)
sj.run()
With SlurmPlatform to run a script as a Slurm job
We have SlurmJob integrated into SlurmPlatform and any Python script can run as a Slurm job simply doing:
--script.py--
from idmtools.entities.command_task import CommandTask
from idmtools.entities.experiment import Experiment
from idmtools.core.platform_factory import Platform
platform = Platform('SLURM_LOCAL', job_directory='<job_directory>')
# Define task
command = "echo 'Hello, World!'"
task = CommandTask(command=command)
# Run an experiment
experiment = Experiment.from_task(task, name="example")
experiment.run(platform=platform)
Folder structure:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file idmtools_platform_slurm-0.0.6.tar.gz.
File metadata
- Download URL: idmtools_platform_slurm-0.0.6.tar.gz
- Upload date:
- Size: 46.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7bdded5b14806d8150b568ca09fe1d862c6b3ac08dd3804e80a44e46e17e202
|
|
| MD5 |
94fcd7768fa6820c7734aa6759e6d4c1
|
|
| BLAKE2b-256 |
92e236538a0cde62d7fcf67ca6a212a8b55bbc42734eccef6ebb07e7b1a68b33
|
Provenance
The following attestation bundles were made for idmtools_platform_slurm-0.0.6.tar.gz:
Publisher:
deploy.yml on InstituteforDiseaseModeling/idmtools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
idmtools_platform_slurm-0.0.6.tar.gz -
Subject digest:
e7bdded5b14806d8150b568ca09fe1d862c6b3ac08dd3804e80a44e46e17e202 - Sigstore transparency entry: 925468463
- Sigstore integration time:
-
Permalink:
InstituteforDiseaseModeling/idmtools@d55a3d7e2a45f48c99adb1a47231413b9eec2fc3 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/InstituteforDiseaseModeling
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@d55a3d7e2a45f48c99adb1a47231413b9eec2fc3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file idmtools_platform_slurm-0.0.6-py3-none-any.whl.
File metadata
- Download URL: idmtools_platform_slurm-0.0.6-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f05732937dc8d1b69f5ed52621587f2cc8dd4386b3ca340f7002c813b4700b4
|
|
| MD5 |
779b956a797c172ec268dae4bcf1f670
|
|
| BLAKE2b-256 |
7966b68defc6c58c5ec04f4a57c8100a12518be08f842b1aaab36cd07fd055a9
|
Provenance
The following attestation bundles were made for idmtools_platform_slurm-0.0.6-py3-none-any.whl:
Publisher:
deploy.yml on InstituteforDiseaseModeling/idmtools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
idmtools_platform_slurm-0.0.6-py3-none-any.whl -
Subject digest:
7f05732937dc8d1b69f5ed52621587f2cc8dd4386b3ca340f7002c813b4700b4 - Sigstore transparency entry: 925468474
- Sigstore integration time:
-
Permalink:
InstituteforDiseaseModeling/idmtools@d55a3d7e2a45f48c99adb1a47231413b9eec2fc3 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/InstituteforDiseaseModeling
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@d55a3d7e2a45f48c99adb1a47231413b9eec2fc3 -
Trigger Event:
push
-
Statement type: