Skip to content

Commit d42ce0f

Browse files
dmholtzfg91pingsutw
authored
Improve docstring of Elastic dataclass in flytekit-kf-pytorch (#3419)
Signed-off-by: David Holtz <56723830+dmholtz@users.noreply.github.com> Co-authored-by: Fabio M. Graetz, Ph.D. <fabiograetz@googlemail.com> Co-authored-by: Kevin Su <pingsutw@apache.org>
1 parent 00d5e22 commit d42ce0f

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

  • plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch

plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch/task.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,20 @@ class Elastic(object):
142142
start_method (str): Multiprocessing start method to use when creating workers.
143143
monitor_interval (int): Interval, in seconds, to monitor the state of workers.
144144
max_restarts (int): Maximum number of worker group restarts before failing.
145-
rdzv_configs (Dict[str, Any]): Additional rendezvous configs to pass to torch elastic, e.g. `{"timeout": 1200, "join_timeout": 900}`.
145+
rdzv_configs (Dict[str, Any]): Additional rendezvous configs to pass to torch elastic, e.g., `{"timeout": 1200, "join_timeout": 900}`.
146146
See `torch.distributed.launcher.api.LaunchConfig` and `torch.distributed.elastic.rendezvous.dynamic_rendezvous.create_handler`.
147147
Default timeouts are set to 15 minutes to account for the fact that some workers might start faster than others: Some pods might
148148
be assigned to a running node which might have the image in its cache while other workers might require a node scale up and image pull.
149+
When using the default `torch.distributed.elastic.rendezvous.c10d_rendezvous_backend.C10dRendezvousBackend`, consider also increasing
150+
the TCPStore `read_timeout`, e.g., {"timeout": 900, "join_timeout": 900, "read_timeout": 900}, as its default value of 60 seconds
151+
might be too tight if the zero-worker starts slower than any other worker.
152+
Increasing the default timeouts is mostly relevant in the absence of true gang-scheduling on the cluster, as provided by e.g.
153+
coscheduling or volcano.
149154
150155
increase_shared_mem (bool): [DEPRECATED] This argument is deprecated. Use `@task(shared_memory=...)` instead.
151156
PyTorch uses shared memory to share data between processes. If torch multiprocessing is used
152157
(e.g. for multi-processed data loaders) the default shared memory segment size that the container runs with might not be enough
153-
and and one might have to increase the shared memory size. This option configures the task's pod template to mount
158+
and one might have to increase the shared memory size. This option configures the task's pod template to mount
154159
an `emptyDir` volume with medium `Memory` to to `/dev/shm`.
155160
The shared memory size upper limit is the sum of the memory limits of the containers in the pod.
156161
run_policy: Configuration for the run policy.

0 commit comments

Comments
 (0)