stilt.ExecutionConfig#
- class stilt.ExecutionConfig(*, backend: Literal['local', 'slurm']='local', n_workers: Annotated[int, Ge(ge=1)] = 1, cpus: Annotated[int, Ge(ge=1)] = 1, time: str | int | None = None, mem: str | None = None, partition: str | None = None, account: str | None = None, qos: str | None = None, timeout: Annotated[int | None, Ge(ge=1)] = None, keep_workdir: bool = False, array_parallelism: Annotated[int | None, Ge(ge=1)] = None, setup: list[str] = <factory>, slurm: dict[str, typing.Any]=<factory>) None[source]#
Where a project’s receptors run, and with what resources.
With
backend: localthe receptors run on this machine as one task. Withbackend: slurmthey are split amongn_workerstasks of one Slurm job array. Either way a task runscpusreceptors at once. The Slurm settings are ignored by a local run, so a config can hold them and be run either way.timeoutandkeep_workdirapply to both. None of these settings change a result.
Parameters#
Parameter |
Description |
Default |
|---|---|---|
|
Where to run: on this machine ( |
|
|
Number of Slurm array tasks, which the receptors are split evenly among. A local run is one task. |
|
|
Receptors each task runs at once: processes on this machine for a local run, CPUs per array task on Slurm. |
|
|
Slurm time limit per task, as |
|
|
Memory per Slurm task, such as |
|
|
Slurm partition. |
|
|
Slurm account. |
|
|
Slurm quality of service. |
|
|
Time limit for one transport model run, in seconds. A run that exceeds it is stopped and recorded as a failed simulation, and the worker moves on. Unset waits indefinitely, so a hung run can hold a worker until its job ends. |
|
|
Keep every run’s workdir, as the transport model left it, under |
|
|
Most Slurm tasks running at once. Unset leaves it to Slurm. |
|
|
Shell commands run in each Slurm task before the worker, such as |
|
|
Any other |
|