Skip to content

Index

provider

Allocation providers supported by the execution API.

Provider

Bases: ABC

One configured backend capable of allocating an execution.

solve(execution: Combobulation, config: DispatchConfig, timeout: float = 30.0) -> HardwareResult | None abstractmethod

Return hardware for an execution, or None when unavailable.

ship(spec: DispatchSpec, config: DispatchConfig, timeout: float = 30.0) -> ShipResult abstractmethod

Publish and launch one dispatch.

PartitionConfig(name: str, default: bool = False, constraint: str | None = None) dataclass

One SLURM partition available through a login host.

SlurmConfig(ssh: str, cluster: str, type: Literal['slurm'] = 'slurm', partitions: list[PartitionConfig] = list(), account: str | None = None, qos: str | None = None, mem: str | None = None, time: str = '14-0', exclude: list[str] = list(), uv_groups: list[str] = list(), chips: dict[str, int] | None = None, cpu_partitions: list[str] = list(), annotations: dict[str, str] = dict(), env: dict[str, str] = dict()) dataclass

A SLURM cluster allocated through an SSH login host.

SlurmProvider(name: str, host: SlurmConfig) dataclass

Bases: Provider

Solve allocations through one SLURM login host.

solve(execution: Combobulation, config: DispatchConfig, timeout: float = 30.0) -> HardwareResult | None

Query the head node and return schedulable hardware.

ship(spec: DispatchSpec, config: DispatchConfig, timeout: float = 30.0) -> ShipResult

Publish a dispatch on shared storage and submit it once to SLURM.

SSHConfig(ssh: str, cluster: str, type: Literal['plain'] = 'plain', chips: dict[str, int] = dict(), uv_groups: list[str] = list(), env: dict[str, str] = dict()) dataclass

One machine available for direct execution over SSH.

SSHProvider(name: str, host: SSHConfig) dataclass

Bases: Provider

Allocate and launch work on exactly one SSH machine.

solve(execution: Combobulation, config: DispatchConfig, timeout: float = 30.0) -> HardwareResult | None

Return this host when it alone satisfies the execution request.

ship(spec: DispatchSpec, config: DispatchConfig, timeout: float = 30.0) -> ShipResult

Publish one immutable dispatch and idempotently launch it over SSH.

ShipResult(provider: str, host: str, directory: str, bootstrap: str, dispatch: str, logs: tuple[str, ...], job_ids: tuple[str, ...], remote: RunResult) dataclass

Remote artifacts and process identities created for a dispatch.

ok: bool property

Return whether every requested remote launch was accepted.

VolcanoConfig(cluster: str, image: str, pvc_name: str, type: Literal['volcano'] = 'volcano', namespace: str = 'default', queue: str = 'default', pvc_mount_path: str = '/workspace', pvc_codedrop_path: str | None = None, chips: dict[str, int] = dict(), num_nodes: int = 1, gpus_per_node: int = 0, gpu_resource_key: str = 'nvidia.com/gpu', cpu: str | None = None, memory: str | None = None, cpu_cpu: str | None = None, cpu_memory: str | None = None, shm_size: str | None = None, service_account: str | None = None, priority_class: str | None = None, node_selector: dict[str, str] = dict(), tolerations: list[dict[str, str]] = list(), labels: dict[str, str] = dict(), env: dict[str, str] = dict(), uv_groups: list[str] = list(), kubeconfig: str | None = None, context: str | None = None, rdma: bool = False, rdma_per_node: int = 8, helper_resources: dict[str, str] = (lambda: {'requests.cpu': '1', 'requests.memory': '1Gi', 'limits.cpu': '1', 'limits.memory': '1Gi'})()) dataclass

A homogeneous pool scheduled through a Volcano queue.

VolcanoProvider(name: str, host: VolcanoConfig) dataclass

Bases: Provider

Resolve a homogeneous allocation and submit it to a Volcano queue.