in submitit/local/local.py [0:0]
def _internal_update_parameters(self, **kwargs: Any) -> None:
"""Update the parameters of the Executor.
Valid parameters are:
- timeout_min (float)
- gpus_per_node (int)
- visible_gpus (Sequence[int])
- tasks_per_node (int)
- nodes (int). Must be 1 if specified
- signal_delay_s (int): USR1 signal delay before timeout
Other parameters are ignored
"""
if kwargs.get("nodes", 0) > 1:
raise ValueError("LocalExecutor can use only one node. Use nodes=1")
gpus_requested = kwargs.get("gpus_per_node", 0)
visible_gpus = kwargs.get("visible_gpus", ())
if not isinstance(visible_gpus, Sequence):
raise ValueError(f"Provided visible_gpus={visible_gpus} is not an instance of Sequence.")
if not all(isinstance(x, int) for x in visible_gpus):
raise ValueError(f"Provided visible_gpus={visible_gpus} contains an element that is not an int.")
if len(visible_gpus) > 0 and gpus_requested > len(visible_gpus):
raise ValueError(
f"{gpus_requested} gpus requested, but only {visible_gpus} were specified visible."
)
super()._internal_update_parameters(**kwargs)