2.11.0
Slurm
Slurm connector plugin for Flyte.
Run Flyte 2 tasks on an existing Slurm cluster. The connector submits jobs over SSH to a login node, so it works with any Slurm installation, including Soperator-managed clusters.
Two task types are provided:
slurm: a Python task run inside its own container image via Pyxis/Enroot. Typed inputs and outputs, caching, retries and error reporting work as they do for a Kubernetes task. Removeplugin_configand the same task runs on Kubernetes.slurm_script: an existingsbatchscript submitted as-is. Phase and logs only.
import flyte
from flyteplugins.slurm import Slurm
env = flyte.TaskEnvironment(
name="train",
plugin_config=Slurm(
partition="main",
nodes=1,
gres="gpu:8",
time_limit="4:00:00",
host="login.slurm.example.com",
username="flyte",
ssh_private_key="slurm-ssh-key",
),
image=flyte.Image.from_debian_base().with_pip_packages("flyteplugins-slurm"),
)
@env.task
async def train(steps: int) -> float:
...Directory
Classes
| Class | Description |
|---|---|
Slurm |
Configuration for running a task on a Slurm cluster. |
SlurmConnector |
Run Flyte tasks as Slurm jobs. |
SlurmFunctionTask |
A Python task executed as a Slurm job. |
SlurmJobMetadata |
|
SlurmScriptConnector |
|
SlurmScriptTask |
An existing sbatch script run as a Flyte task, unmodified. |