torchmonarch-nightly 2025.9.7__cp313-cp313-manylinux2014_x86_64.whl → 2025.9.9__cp313-cp313-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
monarch/__init__.py CHANGED
@@ -9,13 +9,6 @@
9
9
  from importlib import import_module as _import_module
10
10
  from typing import TYPE_CHECKING
11
11
 
12
- # Import before monarch to pre-load torch DSOs as, in exploded wheel flows,
13
- # our RPATHs won't correctly find them.
14
- try:
15
- import torch # noqa: F401
16
- except ImportError:
17
- pass
18
-
19
12
  # submodules of monarch should not be imported in this
20
13
  # top-level file because it will cause them to get
21
14
  # loaded even if they are not actually being used.
monarch/_rust_bindings.so CHANGED
Binary file
@@ -17,12 +17,6 @@ import multiprocessing
17
17
  import os
18
18
  import sys
19
19
 
20
- # Import torch to avoid import-time races if a spawned actor tries to import torch.
21
- try:
22
- import torch # @manual # noqa: F401
23
- except ImportError:
24
- pass
25
-
26
20
 
27
21
  async def main():
28
22
  from monarch._rust_bindings.monarch_hyperactor.bootstrap import bootstrap_main
@@ -38,6 +32,7 @@ def invoke_main():
38
32
  global bootstrap_main
39
33
 
40
34
  # TODO: figure out what from worker_main.py we should reproduce here.
35
+
41
36
  from monarch._src.actor.telemetry import TracingForwarder # noqa
42
37
 
43
38
  if os.environ.get("MONARCH_ERROR_DURING_BOOTSTRAP_FOR_TESTING") == "1":
@@ -8,15 +8,18 @@
8
8
 
9
9
  import io
10
10
  import pickle
11
+ import sys
11
12
  from contextlib import contextmanager, ExitStack
12
13
  from typing import Any, Callable, Iterable, List, Tuple
13
14
 
14
15
  import cloudpickle
15
16
 
16
- try:
17
- import torch # @manual
18
- except ImportError:
19
- torch = None
17
+
18
+ def maybe_torch():
19
+ """
20
+ We have to do some special pickling if torch is loaded but not if it isn't loaded?
21
+ """
22
+ return sys.modules.get("torch")
20
23
 
21
24
 
22
25
  _orig_function_getstate = cloudpickle.cloudpickle._function_getstate
@@ -76,6 +79,7 @@ def flatten(obj: Any, filter: Callable[[Any], bool]) -> Tuple[List[Any], bytes]:
76
79
 
77
80
  def unflatten(data: bytes, values: Iterable[Any]) -> Any:
78
81
  with ExitStack() as stack:
82
+ torch = maybe_torch()
79
83
  if torch is not None:
80
84
  stack.enter_context(load_tensors_on_cpu())
81
85
  stack.enter_context(torch.utils._python_dispatch._disable_current_modes())
@@ -87,6 +91,8 @@ def unflatten(data: bytes, values: Iterable[Any]) -> Any:
87
91
  def load_tensors_on_cpu():
88
92
  # Ensure that any tensors load from CPU via monkeypatching how Storages are
89
93
  # loaded.
94
+ import torch
95
+
90
96
  old = torch.storage._load_from_bytes
91
97
  try:
92
98
  torch.storage._load_from_bytes = lambda b: torch.load(
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: torchmonarch-nightly
3
- Version: 2025.9.7
3
+ Version: 2025.9.9
4
4
  Summary: Monarch: Single controller library
5
5
  Author: Meta
6
6
  Author-email: oncall+monarch@xmail.facebook.com
@@ -35,8 +35,8 @@ Dynamic: summary
35
35
  actor messaging. It provides:
36
36
 
37
37
  1. Remote actors with scalable messaging: Actors are grouped into collections called meshes and messages can be broadcast to all members.
38
- 2. Fault tolerance through supervision trees: Actors and processes for a tree and failures propagate up the tree, providing good default error behavior and enabling fine-grained fault recovery.
39
- 3. Point-to-point RDMA transfers: cheap registration of any GPU or CPU memory in a process, with the one-sided tranfers based on libibverbs
38
+ 2. Fault tolerance through supervision trees: Actors and processes form a tree and failures propagate up the tree, providing good default error behavior and enabling fine-grained fault recovery.
39
+ 3. Point-to-point RDMA transfers: cheap registration of any GPU or CPU memory in a process, with the one-sided transfers based on libibverbs
40
40
  4. Distributed tensors: actors can work with tensor objects sharded across processes
41
41
 
42
42
  Monarch code imperatively describes how to create processes and actors using a simple python API:
@@ -57,7 +57,7 @@ class Trainer(Actor):
57
57
  # create the trainers
58
58
  trainers = training_procs.spawn("trainers", Trainer)
59
59
 
60
- # tell all the trainers to to take a step
60
+ # tell all the trainers to take a step
61
61
  fut = trainers.train.call(step=0)
62
62
 
63
63
  # wait for all trainers to complete
@@ -113,7 +113,7 @@ sudo dnf install cuda-toolkit-12-0 cuda-12-0
113
113
 
114
114
  # Install clang-dev and nccl-dev
115
115
  sudo dnf install clang-devel libnccl-devel
116
- # Or, in some envrionments, the following may be necessary instead
116
+ # Or, in some environments, the following may be necessary instead
117
117
  conda install -c conda-forge clangdev nccl
118
118
  conda update -n monarchenv --all -c conda-forge -y
119
119
 
@@ -1,5 +1,5 @@
1
- monarch/__init__.py,sha256=mgKiyD1kxky-1pvhMlNfF4VmxWnhi-FSYZNFzkW1BEM,7052
2
- monarch/_rust_bindings.so,sha256=DbwW1G8kuEeEnQJy954ZdQ__vgDFxo-NyOm6W4Nf2vE,61550376
1
+ monarch/__init__.py,sha256=cH7tTOsGn-qoeBmSVv_67yHxxsQhMQD2aBScPPkNO7k,6870
2
+ monarch/_rust_bindings.so,sha256=XMUUyzFMIuYh3vIu4OU025Vtyl25jGcwFw2hzYh58iY,61507624
3
3
  monarch/_testing.py,sha256=5BDMVA4hBMo780rsJ39vRmUZi6mTN8aYY7I9grJRjJ8,7841
4
4
  monarch/actor_mesh.py,sha256=VtPU9syi_vUdwDSJJ639Z4Y_EcWZUScyoj0lQ88RQPs,421
5
5
  monarch/bootstrap_main.py,sha256=39OZpNMrfvvNJf-iwuNzgslzYA_ItaRPHfXGn_V74N0,524
@@ -8,7 +8,7 @@ monarch/fetch.py,sha256=CssP25dMqyJnJAWoC41lwkMnSbvS-f2DL9PRbudJXfc,1704
8
8
  monarch/gradient_generator.py,sha256=b7PmoN_F3c5hQglfHeW_v5htYnePKvJGkzZN-tpHR4A,6396
9
9
  monarch/memory.py,sha256=ol86dBhFAJqg78iF25-BuK0wuwj1onR8FIioZ_B0gjw,1377
10
10
  monarch/mesh_controller.py,sha256=Y_26Cnmp72TccNbWdDQhq18j7de7pSw83E_fREJX9Yo,15372
11
- monarch/monarch_controller,sha256=npifJaDq61NfnwhKRxRkRLSCx3DiyNfTtQ3Pzh9aFNk,32549008
11
+ monarch/monarch_controller,sha256=SD2c06R9ClraWw-Uwui05KragWtk9RmU89cLQ2IjXPE,30598480
12
12
  monarch/notebook.py,sha256=zu9MKDFKf1-rCM2TqFSRJjMBeiWuKcJSyUFLvoZRQzs,25949
13
13
  monarch/opaque_module.py,sha256=jCcg0DjbcEVXA9WNG0NhUzGteLHOJLTZEBvrIYJIAns,10436
14
14
  monarch/opaque_object.py,sha256=x1LoX6RIMGh4ux52xIfhPgoh6PhZHdkf9bMccHW3DW0,2808
@@ -27,14 +27,14 @@ monarch/_src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  monarch/_src/actor/__init__.py,sha256=4iK3nzQZmEPe0HGNY70fABBenw3lCVVaaF0xddF5Fa0,235
28
28
  monarch/_src/actor/actor_mesh.py,sha256=P9b4CvxYeYfJecPxeEtohAasvGgzzElcvxh9chALeAA,40526
29
29
  monarch/_src/actor/allocator.py,sha256=UVGhrkPQMqPQp6vUngPI361s6yCEfZ0gfz8WTtG2om4,9392
30
- monarch/_src/actor/bootstrap_main.py,sha256=7T7ARumcHLZ5RI-k5jej9tBil0J7-BUSVFKwAZO2tJU,2413
30
+ monarch/_src/actor/bootstrap_main.py,sha256=Dp9VVNILHxzmoqtiY5cBGZzvf0tTrIjD81eGdnmdpuY,2253
31
31
  monarch/_src/actor/device_utils.py,sha256=gBpl23wMjppVAEzzj8U9HyX-B7Bs2_3ftiMAkzUS4j4,577
32
32
  monarch/_src/actor/endpoint.py,sha256=ndIxeXfXKpW-nb-CtYsDpt2UjQwRIdNZfmSL218yHd0,10887
33
33
  monarch/_src/actor/event_loop.py,sha256=2i4fKIkemBzua_t47BqVa2roZ6fWB6sbmMFPNx2zKN0,2832
34
34
  monarch/_src/actor/future.py,sha256=idgqzU_B5qWfClIP5dTLapmBflWq5va-ujAzUbT1Asc,7490
35
35
  monarch/_src/actor/host_mesh.py,sha256=8SOkg_LhHuzLyhpwxT7Yw1_h8QrIlwfWhrSwHyAvfnk,5083
36
36
  monarch/_src/actor/logging.py,sha256=9aguohqCtvLVwWGTFM7o-rBptT26BjI2s6E5Of2imM4,3311
37
- monarch/_src/actor/pickle.py,sha256=FhdbAEsGrsD7f25bxF7HlROLm6j2TTvmToq8P1kyhB8,2913
37
+ monarch/_src/actor/pickle.py,sha256=ZK2vzI7BJeZHMLh6vLdQFACqvSlyWldJO_kzDPTUTGQ,3061
38
38
  monarch/_src/actor/proc_mesh.py,sha256=lYrRMQNOGAdFXuFvc3lQ68xIS01YJWMkpi8qH5HHAHE,27791
39
39
  monarch/_src/actor/python_extension_methods.py,sha256=QujLWOQQbDdGCin8tZfDxyIwkM-Md4t9QtcTGTHOE_s,3493
40
40
  monarch/_src/actor/shape.py,sha256=PJqxpQEISHlxK8rrlKWpcNMEHiGxBbc6TsHcGZCOsyE,8472
@@ -186,9 +186,9 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
186
186
  tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
187
187
  tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
188
188
  tests/simulator/test_worker.py,sha256=QrWWIJ3HDgDLkBPRc2mwYPlOQoXQcj1qRfc0WUfKkFY,3507
189
- torchmonarch_nightly-2025.9.7.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
190
- torchmonarch_nightly-2025.9.7.dist-info/METADATA,sha256=YFeYxWS19JVw1l8RkUJxYEWmiSw3wp0fkarESCIMqDA,6474
191
- torchmonarch_nightly-2025.9.7.dist-info/WHEEL,sha256=OlISbtpDcfagPrLwG7WtpcZbPTUnoKPnwphA_26fNqE,104
192
- torchmonarch_nightly-2025.9.7.dist-info/entry_points.txt,sha256=60QVSpYVzkzS4iDOiLp0fsLxVp47X3J2l3v7W-59LMo,117
193
- torchmonarch_nightly-2025.9.7.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
194
- torchmonarch_nightly-2025.9.7.dist-info/RECORD,,
189
+ torchmonarch_nightly-2025.9.9.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
190
+ torchmonarch_nightly-2025.9.9.dist-info/METADATA,sha256=SMfT1xHAuNlQkzHJZ4paq0GNL_PA_hZlLGReEAe9ZJU,6473
191
+ torchmonarch_nightly-2025.9.9.dist-info/WHEEL,sha256=OlISbtpDcfagPrLwG7WtpcZbPTUnoKPnwphA_26fNqE,104
192
+ torchmonarch_nightly-2025.9.9.dist-info/entry_points.txt,sha256=60QVSpYVzkzS4iDOiLp0fsLxVp47X3J2l3v7W-59LMo,117
193
+ torchmonarch_nightly-2025.9.9.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
194
+ torchmonarch_nightly-2025.9.9.dist-info/RECORD,,