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.