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

(cherry picked from commit f98edfc)
  • Loading branch information
malfet authored and izaitsevfb committed Dec 6, 2022
1 parent a81f9b3 commit 9c27445
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
14 changes: 10 additions & 4 deletions test/test_testing.py
Expand Up @@ -18,7 +18,7 @@

from torch.testing import make_tensor
from torch.testing._internal.common_utils import \
(IS_FBCODE, IS_SANDCASTLE, IS_WINDOWS, TestCase, run_tests, skipIfRocm, slowTest,
(IS_FBCODE, IS_MACOS, IS_SANDCASTLE, IS_WINDOWS, TestCase, run_tests, skipIfRocm, slowTest,
parametrize, subtest, instantiate_parametrized_tests, dtype_name, TEST_WITH_ROCM)
from torch.testing._internal.common_device_type import \
(PYTORCH_TESTING_DEVICE_EXCEPT_FOR_KEY, PYTORCH_TESTING_DEVICE_ONLY_FOR_KEY, dtypes,
Expand Down Expand Up @@ -1782,9 +1782,15 @@ def test_circular_dependencies(self) -> None:
# See https://github.com/pytorch/pytorch/issues/77801
if not sys.version_info >= (3, 9):
ignored_modules.append("torch.utils.benchmark")
if IS_WINDOWS:
# Distributed does not work on Windows
ignored_modules.append("torch.distributed.")
if IS_WINDOWS or IS_MACOS:
# 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")

torch_dir = os.path.dirname(torch.__file__)
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: singal, 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 9c27445

Please sign in to comment.