miniwdl-slurm
Extends miniwdl to run workflows on SLURM clusters in singularity containers.
This SLURM backend plugin for miniwdl runs WDL task containers by creating a job script that is submitted to a SLURM cluster. In case the job description has a container, singularity will be used as container runtime.
Installation
For the latest stable version:
pip install miniwdl-slurm
For the development version:
pip install git+https://github.com/miniwdl-ext/miniwdl-slurm.git
Configuration
The following miniwdl configuration example can be used to use miniwdl on a SLURM cluster:
[scheduler]
container_backend=slurm_singularity
# task_concurrency defaults to the number of processors on the system.
# since we submit the jobs to SLURM this is not necessary.
# higher numbers means miniwdl has to monitor more processes simultaneously
# which might impact performance.
task_concurrency=200
# This setting allows running tasks to continue, even if one other tasks fails.
# Useful in combination with call caching. Prevents wasting resources by
# cancelling jobs half-way that would probably succeed.
fail_fast = false
[call_cache]
# The following settings create a call cache under the current directory.
# This prevents wasting unnecessary resources on the cluster by rerunning
# jobs that have already succeeded.
put = true
get = true
dir = "$PWD/miniwdl_call_cache"
[task_runtime]
# Setting a 'maxRetries' default allows jobs that fail due to intermittent
# errors on the cluster to be retried.
defaults = {
"maxRetries": 2,
"docker": "ubuntu:20.04"
}
[singularity]
# This plugin wraps the singularity backend. Make sure the settings are
# appropriate for your cluster.
exe = ["singularity"]
# the miniwdl default options contain options to run as a fake root, which
# is not available on most clusters. So the run options do need to be
# overriden.
# --containall: isolates container environment, does not mount home, and
# isolates IPC and PID namespace.
# --no-mount hostfs: Prohibit mounting of any host filesystems unless
# explcitly mounted.
# --network none: Do not allow any network traffic inside and outside
# the container. This is a sane default for reproducible workflows,
# as "the internet" can vary, but if you have explicit download tasks
# you might need to remove this.
run_options = [
"--containall",
"--no-mount", "hostfs",
"--network", "none"
]
# Location of the singularity images (optional). The miniwdl-slurm plugin
# will set it to a directory inside $PWD. This location must be reachable
# for the submit nodes.
image_cache = "$PWD/miniwdl_singularity_cache"
[slurm]
# extra arguments passed to the sbatch command (optional).
extra_args="--partition heavy_users,gpu --comment 'run with miniwdl'"
Metadata
Release files for miniwdl-slurm 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| miniwdl_slurm-0.4.0.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| miniwdl_slurm-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / miniwdl_slurm-0.4.0.tar.gz
| Download URL | miniwdl_slurm-0.4.0.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c412ae0cc0bbde0c0ce46a9ca75e81a9209a066ac7ab507abc5835a2434c7269
|
|
BLAKE2b-256 checksum How to use checksums |
76dd2b43669c0c05c8ca40990d118e06bca69cd508d6cd3e1d51a6d8a442abb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|
Release files / miniwdl_slurm-0.4.0-py3-none-any.whl
| Download URL | miniwdl_slurm-0.4.0-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd96053fcf94633a615ad38dc1b28201c5defd3165681c0cf445dc832c08f444
|
|
BLAKE2b-256 checksum How to use checksums |
7c3d9ba2232062c3eb577faf711ed85a87b3ae8911fa498433357da524a3f28c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.2
|