Skip to content

Commit

Permalink
Make TorchElastic timer importable on Windows (pytorch#88522)
Browse files Browse the repository at this point in the history
Also, add `torch.distributed` to test imports, so that we would not
regress in the future

Fixes pytorch#85427
Pull Request resolved: pytorch#88522
Approved by: https://github.com/d4l3k
  • Loading branch information
malfet authored and kulinseth committed Dec 9, 2022
1 parent faabe58 commit cda2f97
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
10 changes: 8 additions & 2 deletions test/test_testing.py
Expand Up @@ -1794,8 +1794,14 @@ def test_circular_dependencies(self) -> None:
if not sys.version_info >= (3, 9):
ignored_modules.append("torch.utils.benchmark")
if IS_WINDOWS or IS_MACOS:
# Distributed does not work on Windows or by default on Mac
ignored_modules.append("torch.distributed.")
# Distributed should be importable on Windows(except nn.api.), but not on Mac
if IS_MACOS:
ignored_modules.append("torch.distributed.")
else:
ignored_modules.append("torch.distributed.nn.api.")
ignored_modules.append("torch.distributed.optim.")
ignored_modules.append("torch.distributed.pipeline.")
ignored_modules.append("torch.distributed.rpc.")
ignored_modules.append("torch.testing._internal.dist_utils")
# And these both end up with transitive dependencies on distributed
ignored_modules.append("torch.nn.parallel._replicated_tensor_ddp_interop")
Expand Down
4 changes: 3 additions & 1 deletion torch/distributed/elastic/timer/file_based_local_timer.py
Expand Up @@ -10,6 +10,7 @@
import os
import select
import signal
import sys
import threading
import time
from typing import Callable, Dict, List, Optional, Set, Tuple
Expand Down Expand Up @@ -78,7 +79,8 @@ class FileTimerClient(TimerClient):
signal: signal, the signal to use to kill the process. Using a
negative or zero signal will not kill the process.
"""
def __init__(self, file_path: str, signal=signal.SIGKILL) -> None:
def __init__(self, file_path: str, signal=(signal.SIGKILL if sys.platform != "win32" else
signal.CTRL_C_EVENT)) -> None: # type: ignore[attr-defined]
super().__init__()
self._file_path = file_path
self.signal = signal
Expand Down

0 comments on commit cda2f97

Please sign in to comment.