nvflare.app_opt.job_launcher.slurm.config module

Configuration, models, constants, and validation for Slurm launchers.

class BindMount(source: 'str', destination: 'str', mode: 'str')[source]

Bases: object

destination: str
mode: str
render() str[source]
source: str
class CommandResult(returncode: 'Optional[int]', stdout: 'str', stderr: 'str', timed_out: 'bool' = False)[source]

Bases: object

property available: bool
returncode: int | None
stderr: str
stdout: str
timed_out: bool = False
class JobResources(nodes: 'int' = 1, gpus_per_node: 'Optional[int]' = None, cpus_per_node: 'Optional[int]' = None, mem_per_node: 'Optional[int]' = None, time_limit: 'Optional[str]' = None, pending_timeout: 'float' = 600.0)[source]

Bases: object

cpus_per_node: int | None = None
gpus_per_node: int | None = None
mem_per_node: int | None = None
nodes: int = 1
pending_timeout: float = 600.0
time_limit: str | None = None
class LaunchPlan(job_id: 'str', site_name: 'str', run_dir: 'str', exe_module: 'str', module_args: 'tuple', resources: 'JobResources', directives: 'dict', sandbox: 'str', image: 'Optional[str]', setup: 'str', study_env: 'dict', study_secret_env: 'dict', mounts: 'tuple', python_path: 'str', python_env: 'str', forward_env: 'tuple')[source]

Bases: object

directives: dict
exe_module: str
forward_env: tuple
image: str | None
job_id: str
module_args: tuple
mounts: tuple
python_env: str
python_path: str
resources: JobResources
run_dir: str
sandbox: str
setup: str
site_name: str
study_env: dict
study_secret_env: dict
class LookupStatus(value)[source]

Bases: str, Enum

An enumeration.

FOUND = 'FOUND'
NOT_FOUND = 'NOT_FOUND'
UNAVAILABLE = 'UNAVAILABLE'
class QueryResult(status: 'LookupStatus', records: 'tuple' = ())[source]

Bases: object

records: tuple = ()
status: LookupStatus
class SlurmConfig(workspace_path: 'str', sandbox: 'str', python_path: 'str', executables: 'dict', image: 'Optional[str]' = None, internal_port: 'int' = 8102, sbatch_directives: 'dict' = <factory>, setup: 'str' = '', forward_env: 'tuple' = (), parent_host: 'Optional[str]' = None, poll_interval: 'float' = 10.0, pending_timeout: 'float' = 600.0)[source]

Bases: object

executables: dict
forward_env: tuple = ()
image: str | None = None
internal_port: int = 8102
parent_host: str | None = None
pending_timeout: float = 600.0
poll_interval: float = 10.0
python_path: str
sandbox: str
sbatch_directives: dict
setup: str = ''
workspace_path: str
exception SlurmLauncherError[source]

Bases: RuntimeError

Base error for a failed Slurm launch operation.

exception SlurmProtocolError[source]

Bases: SlurmLauncherError

Scheduler output contradicted the configured machine-readable protocol.

class SlurmRecord(job_id: 'str', state: 'str', exit_status: 'int' = 0, exit_signal: 'int' = 0)[source]

Bases: object

exit_signal: int = 0
exit_status: int = 0
job_id: str
state: str
class SubmissionResult(command: 'CommandResult', job_id: 'Optional[str]' = None, cluster: 'Optional[str]' = None)[source]

Bases: object

cluster: str | None = None
command: CommandResult
job_id: str | None = None
normalize_slurm_directives(value: dict | None, label: str = 'sbatch_directives') dict[source]
normalize_slurm_executables(value: dict) dict[str, str | None][source]
normalize_slurm_image(image: str | None, sandbox: str, *, require_file: bool = False, label: str = 'image') str | None[source]
normalize_slurm_launcher_settings(*, sandbox: str, python_path: str, executables: dict, image: str | None, internal_port: int, sbatch_directives: dict | None, setup: str | None, forward_env: list | None, parent_host: str | None, poll_interval: float, pending_timeout: float, require_image_file: bool = False) dict[source]
normalize_slurm_workspace_path(value: str) str[source]
resolve_slurm_parent_executables(value: dict) dict[source]

Resolve parent-side Slurm commands once on the host running the parent.