torchmonarch-nightly 2025.9.9__cp313-cp313-manylinux2014_x86_64.whl → 2025.9.11__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.
Files changed (36) hide show
  1. monarch/__init__.py +7 -0
  2. monarch/_rust_bindings.so +0 -0
  3. monarch/_src/actor/actor_mesh.py +1 -1
  4. monarch/_src/actor/bootstrap_main.py +7 -2
  5. monarch/_src/actor/debugger/breakpoint.py +30 -0
  6. monarch/_src/actor/debugger/debug_command.py +183 -0
  7. monarch/_src/actor/debugger/debug_controller.py +246 -0
  8. monarch/_src/actor/debugger/debug_io.py +68 -0
  9. monarch/_src/actor/debugger/debug_session.py +249 -0
  10. monarch/_src/actor/debugger/pdb_wrapper.py +1 -1
  11. monarch/_src/actor/host_mesh.py +10 -2
  12. monarch/_src/actor/pickle.py +4 -10
  13. monarch/_src/actor/proc_mesh.py +80 -19
  14. monarch/_src/tensor_engine/rdma.py +2 -0
  15. monarch/actor/__init__.py +1 -1
  16. monarch/gradient/_gradient_generator.so +0 -0
  17. monarch/monarch_controller +0 -0
  18. monarch/tools/cli.py +26 -0
  19. monarch/tools/commands.py +15 -0
  20. monarch/tools/debug_env.py +34 -0
  21. monarch/tools/mesh_spec.py +2 -0
  22. tests/test_allocator.py +18 -9
  23. tests/test_debugger.py +29 -25
  24. tests/test_mock_cuda.py +11 -3
  25. torchmonarch_nightly-2025.9.11.data/scripts/process_allocator +0 -0
  26. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/METADATA +1 -1
  27. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/RECORD +31 -29
  28. monarch/_src/actor/debugger/debugger.py +0 -737
  29. monarch/_src/debug_cli/__init__.py +0 -7
  30. monarch/_src/debug_cli/debug_cli.py +0 -43
  31. monarch/debug_cli/__init__.py +0 -7
  32. monarch/debug_cli/__main__.py +0 -12
  33. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/WHEEL +0 -0
  34. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/entry_points.txt +0 -0
  35. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/licenses/LICENSE +0 -0
  36. {torchmonarch_nightly-2025.9.9.dist-info → torchmonarch_nightly-2025.9.11.dist-info}/top_level.txt +0 -0
tests/test_allocator.py CHANGED
@@ -30,6 +30,7 @@ from monarch._rust_bindings.monarch_hyperactor.channel import (
30
30
  ChannelAddr,
31
31
  ChannelTransport,
32
32
  )
33
+ from monarch._src.actor.actor_mesh import IN_PAR
33
34
 
34
35
  from monarch._src.actor.allocator import (
35
36
  ALLOC_LABEL_PROC_MESH_NAME,
@@ -57,6 +58,10 @@ SERVER_READY = "monarch.tools.commands.server_ready"
57
58
  UNUSED = "__UNUSED__"
58
59
 
59
60
 
61
+ def _get_hostname() -> str:
62
+ return "0.0.0.0" if not IN_PAR else "localhost"
63
+
64
+
60
65
  class EnvCheckActor(Actor):
61
66
  """Actor that checks for the presence of an environment variable"""
62
67
 
@@ -321,7 +326,7 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
321
326
  actor = await proc_mesh.spawn("test_actor", TestActor)
322
327
 
323
328
  values = await actor.compute_world_size.call(
324
- master_addr="0.0.0.0",
329
+ master_addr=_get_hostname(),
325
330
  master_port=get_free_port(),
326
331
  )
327
332
 
@@ -547,10 +552,10 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
547
552
  actor_b = await proc_mesh_b.spawn("actor_b", TestActor)
548
553
 
549
554
  results_a = await actor_a.compute_world_size.call(
550
- master_addr="0.0.0.0", master_port=get_free_port()
555
+ master_addr=_get_hostname(), master_port=get_free_port()
551
556
  )
552
557
  results_b = await actor_b.compute_world_size.call(
553
- master_addr="0.0.0.0", master_port=get_free_port()
558
+ master_addr=_get_hostname(), master_port=get_free_port()
554
559
  )
555
560
 
556
561
  self.assert_computed_world_size(results_a, 2) # a is a 1x2 mesh
@@ -604,12 +609,14 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
604
609
  name="x",
605
610
  num_hosts=1,
606
611
  transport="tcp",
607
- hostnames=["0.0.0.0"],
612
+ hostnames=[_get_hostname()],
608
613
  )
609
614
  ],
610
615
  )
611
616
  port = get_free_port()
612
- with remote_process_allocator(addr=f"tcp!{get_sockaddr('0.0.0.0', port)}"):
617
+ with remote_process_allocator(
618
+ addr=f"tcp!{get_sockaddr(_get_hostname(), port)}"
619
+ ):
613
620
  with mock.patch(SERVER_READY, return_value=server):
614
621
  initializer = TorchXRemoteAllocInitializer("local:///test", port=port)
615
622
  allocator = RemoteAllocator(
@@ -620,7 +627,7 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
620
627
  proc_mesh = ProcMesh.from_alloc(alloc)
621
628
  actor = await proc_mesh.spawn("test_actor", TestActor)
622
629
  results = await actor.compute_world_size.call(
623
- master_addr="0.0.0.0", master_port=get_free_port()
630
+ master_addr=_get_hostname(), master_port=get_free_port()
624
631
  )
625
632
  self.assert_computed_world_size(results, 4) # 1x4 mesh
626
633
 
@@ -634,12 +641,14 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
634
641
  name="x",
635
642
  num_hosts=1,
636
643
  transport="tcp",
637
- hostnames=["0.0.0.0"],
644
+ hostnames=[_get_hostname()],
638
645
  )
639
646
  ],
640
647
  )
641
648
  port = get_free_port()
642
- with remote_process_allocator(addr=f"tcp!{get_sockaddr('0.0.0.0', port)}"):
649
+ with remote_process_allocator(
650
+ addr=f"tcp!{get_sockaddr(_get_hostname(), port)}"
651
+ ):
643
652
  with mock.patch(SERVER_READY, return_value=server):
644
653
  initializer = TorchXRemoteAllocInitializer("local:///test", port=port)
645
654
  allocator = RemoteAllocator(
@@ -658,7 +667,7 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
658
667
  proc_mesh = ProcMesh.from_alloc(alloc)
659
668
  actor = await proc_mesh.spawn("test_actor", TestActor)
660
669
  results = await actor.compute_world_size.call(
661
- master_addr="0.0.0.0", master_port=get_free_port()
670
+ master_addr=_get_hostname(), master_port=get_free_port()
662
671
  )
663
672
  self.assert_computed_world_size(results, 3) # 1x3 mesh
664
673
 
tests/test_debugger.py CHANGED
@@ -26,25 +26,29 @@ import pytest
26
26
 
27
27
  import torch
28
28
  from monarch._src.actor.actor_mesh import Actor, ActorError, current_rank, IN_PAR
29
- from monarch._src.actor.debugger.debugger import (
30
- _MONARCH_DEBUG_SERVER_HOST_ENV_VAR,
31
- _MONARCH_DEBUG_SERVER_PORT_ENV_VAR,
29
+ from monarch._src.actor.debugger.debug_command import (
32
30
  Attach,
33
31
  Cast,
34
32
  Continue,
35
33
  DebugCommand,
36
- DebugController,
37
- DebugSession,
38
- DebugSessionInfo,
39
- DebugSessions,
40
- DebugStdIO,
41
34
  Help,
42
35
  ListCommand,
43
36
  Quit,
44
37
  )
38
+ from monarch._src.actor.debugger.debug_controller import DebugController
39
+ from monarch._src.actor.debugger.debug_io import DebugStdIO
40
+ from monarch._src.actor.debugger.debug_session import (
41
+ DebugSession,
42
+ DebugSessionInfo,
43
+ DebugSessions,
44
+ )
45
45
  from monarch._src.actor.endpoint import endpoint
46
46
  from monarch._src.actor.proc_mesh import proc_mesh
47
47
  from monarch._src.actor.source_loader import SourceLoaderController
48
+ from monarch.tools.debug_env import (
49
+ _MONARCH_DEBUG_SERVER_HOST_ENV_VAR,
50
+ _MONARCH_DEBUG_SERVER_PORT_ENV_VAR,
51
+ )
48
52
 
49
53
  from pyre_extensions import none_throws
50
54
 
@@ -111,8 +115,8 @@ def run_test_from_name():
111
115
  getattr(sys.modules[__name__], sys.argv[1])()
112
116
 
113
117
 
114
- debug_cli_bin = (
115
- str(importlib.resources.files("monarch.python.tests").joinpath("debug_cli_bin"))
118
+ cli_bin = (
119
+ str(importlib.resources.files("monarch.python.tests").joinpath("cli_bin"))
116
120
  if IN_PAR
117
121
  else ""
118
122
  )
@@ -235,8 +239,8 @@ async def test_debug() -> None:
235
239
  output_mock.side_effect = _patch_output
236
240
 
237
241
  with patch(
238
- "monarch._src.actor.debugger.debugger.DebugStdIO.input", new=input_mock
239
- ), patch("monarch._src.actor.debugger.debugger.DebugStdIO.output", new=output_mock):
242
+ "monarch._src.actor.debugger.debug_io.DebugStdIO.input", new=input_mock
243
+ ), patch("monarch._src.actor.debugger.debug_io.DebugStdIO.output", new=output_mock):
240
244
  proc = proc_mesh(hosts=2, gpus=2)
241
245
  debugee = await proc.spawn("debugee", DebugeeActor)
242
246
  debug_controller = actor.get_or_spawn_controller(
@@ -245,7 +249,9 @@ async def test_debug() -> None:
245
249
 
246
250
  fut = debugee.to_debug.call()
247
251
  await debug_controller.wait_pending_session.call_one()
248
- breakpoints = await _wait_for_breakpoints(debug_controller, 4)
252
+ # This can take a while during stress testing with many instances of the test
253
+ # running in parallel, so the timeout is set to 60 seconds.
254
+ breakpoints = await _wait_for_breakpoints(debug_controller, 4, timeout_sec=60)
249
255
 
250
256
  initial_linenos = {}
251
257
  for i in range(len(breakpoints)):
@@ -343,8 +349,7 @@ async def test_debug() -> None:
343
349
  assert breakpoints[i].rank == rank
344
350
 
345
351
  await debug_controller.blocking_enter.call_one()
346
- breakpoints = await debug_controller.list.call_one(print_output=False)
347
- assert len(breakpoints) == 0
352
+ await _wait_for_breakpoints(debug_controller, 0)
348
353
 
349
354
  with pytest.raises(
350
355
  monarch._src.actor.actor_mesh.ActorError, match="ValueError: bad rank"
@@ -379,7 +384,7 @@ async def test_debug_multi_actor() -> None:
379
384
  ]
380
385
 
381
386
  with patch(
382
- "monarch._src.actor.debugger.debugger.DebugStdIO.input", side_effect=input_mock
387
+ "monarch._src.actor.debugger.debug_io.DebugStdIO.input", side_effect=input_mock
383
388
  ):
384
389
  proc = await proc_mesh(hosts=2, gpus=2)
385
390
  debugee_1 = await proc.spawn("debugee_1", DebugeeActor)
@@ -774,7 +779,7 @@ async def test_debug_command_parser_invalid_inputs(invalid_input):
774
779
 
775
780
 
776
781
  # See earlier comment
777
- @isolate_in_subprocess(env={"MONARCH_DEBUG_CLI_BIN": debug_cli_bin, **debug_env})
782
+ @isolate_in_subprocess(env={"MONARCH_CLI_BIN": cli_bin, **debug_env})
778
783
  @pytest.mark.skipif(
779
784
  torch.cuda.device_count() < 2,
780
785
  reason="Not enough GPUs, this test requires at least 2 GPUs",
@@ -814,7 +819,8 @@ async def test_debug_cli():
814
819
  cmd = None
815
820
  if IN_PAR:
816
821
  cmd = [
817
- os.environ["MONARCH_DEBUG_CLI_BIN"],
822
+ os.environ["MONARCH_CLI_BIN"],
823
+ "debug",
818
824
  "--host",
819
825
  os.environ[_MONARCH_DEBUG_SERVER_HOST_ENV_VAR],
820
826
  "--port",
@@ -822,9 +828,8 @@ async def test_debug_cli():
822
828
  ]
823
829
  elif any(shutil.which(nc_cmd) for nc_cmd in ["ncat", "nc", "netcat"]):
824
830
  cmd = [
825
- sys.executable,
826
- "-m",
827
- "monarch.debug_cli",
831
+ "monarch",
832
+ "debug",
828
833
  "--host",
829
834
  os.environ[_MONARCH_DEBUG_SERVER_HOST_ENV_VAR],
830
835
  "--port",
@@ -1146,8 +1151,8 @@ async def test_debug_with_pickle_by_value():
1146
1151
  output_mock.side_effect = _patch_output
1147
1152
 
1148
1153
  with patch(
1149
- "monarch._src.actor.debugger.debugger.DebugStdIO.input", new=input_mock
1150
- ), patch("monarch._src.actor.debugger.debugger.DebugStdIO.output", new=output_mock):
1154
+ "monarch._src.actor.debugger.debug_io.DebugStdIO.input", new=input_mock
1155
+ ), patch("monarch._src.actor.debugger.debug_io.DebugStdIO.output", new=output_mock):
1151
1156
  pm = proc_mesh(gpus=1, hosts=1)
1152
1157
 
1153
1158
  debug_controller = actor.get_or_spawn_controller(
@@ -1231,8 +1236,7 @@ async def test_debug_with_pickle_by_value():
1231
1236
 
1232
1237
  debug_controller.blocking_enter.call_one().get()
1233
1238
 
1234
- breakpoints = debug_controller.list.call_one().get()
1235
- assert len(breakpoints) == 0
1239
+ await _wait_for_breakpoints(debug_controller, 0)
1236
1240
 
1237
1241
  await fut
1238
1242
  await pm.stop()
tests/test_mock_cuda.py CHANGED
@@ -9,7 +9,13 @@ from unittest import main, TestCase
9
9
 
10
10
  import pytest
11
11
  import torch
12
- import monarch.common.mock_cuda # usort: skip
12
+
13
+
14
+ # Avoid importing if the test is not run.
15
+ def mock_cuda():
16
+ import monarch.common.mock_cuda
17
+
18
+ return monarch.common.mock_cuda
13
19
 
14
20
 
15
21
  def simple_forward_backward(device: str) -> None:
@@ -37,7 +43,7 @@ class TestMockCuda(TestCase):
37
43
  return super().setUp()
38
44
 
39
45
  def test_output_is_garbage(self):
40
- with monarch.common.mock_cuda.mock_cuda_guard():
46
+ with mock_cuda().mock_cuda_guard():
41
47
  x = torch.arange(9, device="cuda", dtype=torch.float32).reshape(3, 3)
42
48
  y = 2 * torch.eye(3, device="cuda")
43
49
  true_output = torch.tensor(
@@ -46,6 +52,8 @@ class TestMockCuda(TestCase):
46
52
  self.assertFalse(torch.equal((x @ y).cpu(), true_output))
47
53
 
48
54
  def test_simple_forward_backward(self):
55
+ # Make sure that any side-effects from importing mock_cuda are applied here too:
56
+ mock_cuda()
49
57
  # This test just makes sure that the forward and backward pass work
50
58
  # and don't crash.
51
59
  simple_forward_backward("cuda")
@@ -58,7 +66,7 @@ class TestMockCuda(TestCase):
58
66
  self.assertTrue(torch.allclose(cpu_dw, real_dw.cpu()))
59
67
  self.assertTrue(torch.allclose(cpu_db, real_db.cpu()))
60
68
 
61
- with monarch.common.mock_cuda.mock_cuda_guard():
69
+ with mock_cuda().mock_cuda_guard():
62
70
  mocked_y, mocked_dw, mocked_db = simple_forward_backward("cuda")
63
71
  self.assertFalse(torch.allclose(cpu_y, mocked_y.cpu()))
64
72
  self.assertFalse(torch.allclose(cpu_dw, mocked_dw.cpu()))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: torchmonarch-nightly
3
- Version: 2025.9.9
3
+ Version: 2025.9.11
4
4
  Summary: Monarch: Single controller library
5
5
  Author: Meta
6
6
  Author-email: oncall+monarch@xmail.facebook.com
@@ -1,5 +1,5 @@
1
- monarch/__init__.py,sha256=cH7tTOsGn-qoeBmSVv_67yHxxsQhMQD2aBScPPkNO7k,6870
2
- monarch/_rust_bindings.so,sha256=XMUUyzFMIuYh3vIu4OU025Vtyl25jGcwFw2hzYh58iY,61507624
1
+ monarch/__init__.py,sha256=mgKiyD1kxky-1pvhMlNfF4VmxWnhi-FSYZNFzkW1BEM,7052
2
+ monarch/_rust_bindings.so,sha256=ljwEqN1Z7OeYiGsj-JzGF5TvPkwwUAbVCLP3WdYbHOo,61738304
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=SD2c06R9ClraWw-Uwui05KragWtk9RmU89cLQ2IjXPE,30598480
11
+ monarch/monarch_controller,sha256=Z07yRUIzG7ltsNuFpCbixSjI9wGaq2ZpR969HIZcrVg,30751016
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
@@ -25,17 +25,17 @@ monarch/tensorboard.py,sha256=MnLgH5lbqeUJauEuirEgR6L_qYl2NGdtwZOWIAuOZao,2587
25
25
  monarch/world_mesh.py,sha256=ob5dJWaC49Uw0xqClHBm8CQLvL4xKnjd4TGzk7k8NxI,980
26
26
  monarch/_src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  monarch/_src/actor/__init__.py,sha256=4iK3nzQZmEPe0HGNY70fABBenw3lCVVaaF0xddF5Fa0,235
28
- monarch/_src/actor/actor_mesh.py,sha256=P9b4CvxYeYfJecPxeEtohAasvGgzzElcvxh9chALeAA,40526
28
+ monarch/_src/actor/actor_mesh.py,sha256=RtlqZPcDpXyt-e5FV1xUvGp9qiViT60UX8FtbvlAMmU,40534
29
29
  monarch/_src/actor/allocator.py,sha256=UVGhrkPQMqPQp6vUngPI361s6yCEfZ0gfz8WTtG2om4,9392
30
- monarch/_src/actor/bootstrap_main.py,sha256=Dp9VVNILHxzmoqtiY5cBGZzvf0tTrIjD81eGdnmdpuY,2253
30
+ monarch/_src/actor/bootstrap_main.py,sha256=3h2-N9ZBfc4V8yg6OpZWtqit5mOLdzimEjxxTEN4tGo,2415
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
- monarch/_src/actor/host_mesh.py,sha256=8SOkg_LhHuzLyhpwxT7Yw1_h8QrIlwfWhrSwHyAvfnk,5083
35
+ monarch/_src/actor/host_mesh.py,sha256=JfZtLjMQuMWNC8YnPVlMTGgrUqlyC3eSF67cqm4IP4w,5277
36
36
  monarch/_src/actor/logging.py,sha256=9aguohqCtvLVwWGTFM7o-rBptT26BjI2s6E5Of2imM4,3311
37
- monarch/_src/actor/pickle.py,sha256=ZK2vzI7BJeZHMLh6vLdQFACqvSlyWldJO_kzDPTUTGQ,3061
38
- monarch/_src/actor/proc_mesh.py,sha256=lYrRMQNOGAdFXuFvc3lQ68xIS01YJWMkpi8qH5HHAHE,27791
37
+ monarch/_src/actor/pickle.py,sha256=FhdbAEsGrsD7f25bxF7HlROLm6j2TTvmToq8P1kyhB8,2913
38
+ monarch/_src/actor/proc_mesh.py,sha256=SaWhn_qxyF2NmTJmqkCjpUAIkxN0gikiRbIVqyU1R10,30580
39
39
  monarch/_src/actor/python_extension_methods.py,sha256=QujLWOQQbDdGCin8tZfDxyIwkM-Md4t9QtcTGTHOE_s,3493
40
40
  monarch/_src/actor/shape.py,sha256=PJqxpQEISHlxK8rrlKWpcNMEHiGxBbc6TsHcGZCOsyE,8472
41
41
  monarch/_src/actor/source_loader.py,sha256=TGHmExLyxPDcCyuG254zo6aUqHMpl-j0VWzxa9rkJYQ,1405
@@ -44,15 +44,17 @@ monarch/_src/actor/tensor_engine_shim.py,sha256=hupavQ2rjPwECaTlDAhY-eeiEY18Wyyx
44
44
  monarch/_src/actor/code_sync/__init__.py,sha256=-0LHqsU8-wClVwgDN-wiqqH7RE3SAuwh5m7iYbaIVDs,419
45
45
  monarch/_src/actor/code_sync/auto_reload.py,sha256=kqXCQuSzjxMw8bcDLsUZiL_NImo4j2EScfNklwpltmU,6685
46
46
  monarch/_src/actor/debugger/__init__.py,sha256=NNrKh5KdiYdbxOhin8x-gw_-tvcuGex2UbS_z7MV9g0,223
47
- monarch/_src/actor/debugger/debugger.py,sha256=YwRE9fqS0H1Tulf_A39YDsLResw9I1ASw0EI4hqfK6E,26956
48
- monarch/_src/actor/debugger/pdb_wrapper.py,sha256=R7UMgVj3ktvqbg3mmC4gZPxxPDOHtgXp68gM_HweH5M,5764
47
+ monarch/_src/actor/debugger/breakpoint.py,sha256=cYSCfEYh-VzrYz4nSVcdYZaPJMVaOUQdNziNNYJIAOI,883
48
+ monarch/_src/actor/debugger/debug_command.py,sha256=rtJ4BK8ybh1tLjAe3p0y7o5DrJSImYnzKdzZUvPxIvQ,5579
49
+ monarch/_src/actor/debugger/debug_controller.py,sha256=Q9Snmn-hK9jqvfCGiczA0DEJD0g5sVef1l8fe3TRiqM,9534
50
+ monarch/_src/actor/debugger/debug_io.py,sha256=C6Tp3vmlC90QX06ncUDCSA8QsvgMH0Jy0RX5RMY6ddA,1967
51
+ monarch/_src/actor/debugger/debug_session.py,sha256=P0wG4xRtQzK5mY0jjSj6GlOYC2J7_3RynlLlHL8xm48,10142
52
+ monarch/_src/actor/debugger/pdb_wrapper.py,sha256=L8RgvYKIS6bQ8aD9LUTlX-dPNPEr2FaOZchQE-qMY64,5772
49
53
  monarch/_src/actor/telemetry/__init__.py,sha256=-drzzqmrJltrq85jm2BpHTBNN9MiO4MLYZBEinLnw5o,5087
50
54
  monarch/_src/actor/telemetry/rust_span_tracing.py,sha256=92nQlaf_UtuwhFAC3_m-f1U-jf954qRyc43h-jWZZ5A,3919
51
- monarch/_src/debug_cli/__init__.py,sha256=NNrKh5KdiYdbxOhin8x-gw_-tvcuGex2UbS_z7MV9g0,223
52
- monarch/_src/debug_cli/debug_cli.py,sha256=OJqqVFXcMkj-bnrxcE2VnjIgA5xrlKjEtCstrsdPcm0,1146
53
55
  monarch/_src/tensor_engine/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
54
- monarch/_src/tensor_engine/rdma.py,sha256=62saqcXo6oUxH9rEZShNGLYdRZ_zizLQKhub7LDSaBg,8418
55
- monarch/actor/__init__.py,sha256=hHf8ri2czQwi-Z23Z9cYZ2FvkVbYOcDA_GTLW_rju7k,1569
56
+ monarch/_src/tensor_engine/rdma.py,sha256=IQ3ukSE_fUtn9AWGjWq_3nDG6bd1LIyTl9PvPEsEZvk,8518
57
+ monarch/actor/__init__.py,sha256=UqobpTBC-FOpisO5YzQGM3_z2JrNvk09KsyuRfDjmQ8,1577
56
58
  monarch/builtins/__init__.py,sha256=QcfnHZGbc2qktBg7DyZt2ruE6VahnIt4S8lEZLHdJqU,443
57
59
  monarch/builtins/log.py,sha256=H1QkuVzwxyi36Zyv-XR0VN0QsNimBWwxE1__fjs0_2o,554
58
60
  monarch/builtins/random.py,sha256=wPbvscg7u53EXpMFo885fO2XOlsyjrNAJ4rBxLzfxdg,1839
@@ -94,11 +96,9 @@ monarch/controller/debugger.py,sha256=7vVERDyXY5nH3GhIoCzNIwn2rm0H76ZJ6A4equ7gfv
94
96
  monarch/controller/history.py,sha256=OZbQ75nFMXnxupw_OBlhiLVXCJ8lJKFw1SV3egvLUqc,3019
95
97
  monarch/controller/rust_backend/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
96
98
  monarch/controller/rust_backend/controller.py,sha256=8IYnVUiqEVKO9rGL3vKqcCSAhWJG1bYYQ0MoaMqsp78,9521
97
- monarch/debug_cli/__init__.py,sha256=NNrKh5KdiYdbxOhin8x-gw_-tvcuGex2UbS_z7MV9g0,223
98
- monarch/debug_cli/__main__.py,sha256=FGsQn54RkC_3gpRrm_UFrGiDDHRbMeGzXXsGANr5UHU,317
99
99
  monarch/gradient/__init__.py,sha256=kqmzwt16mMpk0M3GhpgP_f7da4DGnaV9chDzbt66k4Q,308
100
100
  monarch/gradient/_gradient_generator.pyi,sha256=6cX0UxaDt9NAlwgIhTgnweqGOf6qRhHiGnUzSWNCxdU,630
101
- monarch/gradient/_gradient_generator.so,sha256=8FW1ZFmf2I8D4hkjLu25-LpLaC4JJzpjWFMrOtvhZyk,12167872
101
+ monarch/gradient/_gradient_generator.so,sha256=i99RpiyVm5Ol5bstSb5S7JoE7iDELHZUVdbCyni6NR0,12167824
102
102
  monarch/parallel/__init__.py,sha256=6920kIkhiX7AiyjYvyc1ad8ccP-bStJJ1sS5KkeN2P0,352
103
103
  monarch/parallel/pipelining/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
104
104
  monarch/parallel/pipelining/runtime.py,sha256=KK8TG1gUYEzSsquiZoPTWGSIC74mlncD7cYknKxfb3c,32470
@@ -124,10 +124,11 @@ monarch/timer/example_spmd.py,sha256=p8i3_tO1AmpwSkZryiSjgkh7qaEZ6QXp2Fy1qtPpECA
124
124
  monarch/timer/execution_timer.py,sha256=1YsrLIZirdohKOeFAU2H4UcONhQXHuctJbYcoX8I6gY,6985
125
125
  monarch/timer/execution_timer_test.py,sha256=CSxTv44fFZQURJlCBmYvysQI1aS_zEGZs_uxl9SOHak,4486
126
126
  monarch/tools/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
127
- monarch/tools/cli.py,sha256=b3mKZnK-MwP7JwskTxHI0KcJXxSU6498jEb2ntVr_VM,5001
127
+ monarch/tools/cli.py,sha256=cZBnXLfSUbftYUBJ2FXx8qf8EGsc8nXp-I5zq6d1OcE,5778
128
128
  monarch/tools/colors.py,sha256=XrBkslKoaoDeXqiTluiiuvFLYd-weKp1sjw7DYWz2RY,581
129
- monarch/tools/commands.py,sha256=z4vCPtn_Ypic7L4_Jd3nMJWyyE4olUPqDe4cpJsDKZ4,13873
130
- monarch/tools/mesh_spec.py,sha256=lkKZ7RxuJKY19X6kdiU_V6IWlH1GHidynOaTbuCOsAY,7983
129
+ monarch/tools/commands.py,sha256=XAll0rYrmMl-kqom0RSf-X0trJXzC7YQ0-EBB1Wx9-I,14314
130
+ monarch/tools/debug_env.py,sha256=dXML1bQlnsO7ErFaEmk0XLNeaGgaAdyYzuMnNSAFD3w,1023
131
+ monarch/tools/mesh_spec.py,sha256=OjrlyzQ2BHCi9rn4IlfbJ5x2Ao8iHcJ2DivEz7g8egk,8045
131
132
  monarch/tools/network.py,sha256=mN8Fx9mervxM3VdFHRn4ZXt4z7yWxZp52BTxx2tfpus,2455
132
133
  monarch/tools/utils.py,sha256=gcZyalfoBC6Y3v65h-QMngwXsn24ejXh2TH8RxlgXkA,1888
133
134
  monarch/tools/components/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
@@ -162,17 +163,17 @@ tests/sleep_binary.py,sha256=XfLYaAfwm9xgzM-svs8fhAeFhwYIg6SyVEnx4e6wbUw,1009
162
163
  tests/test_actor_error.py,sha256=SiP9jIlFMaj7eEVgds2I5YWyKW_T4VqdzJMNQ-W8ko0,25304
163
164
  tests/test_actor_shape.py,sha256=ph-RC9sMNHWptZOCwQqMfG4lIUEzhp_pEnfhITeYdHM,4533
164
165
  tests/test_alloc.py,sha256=83HM3gUPWhiUnIhUgxumuK13-MU2otuwKK_1ezKrSHE,737
165
- tests/test_allocator.py,sha256=LKk3WOkSOhlElUxtxjHm7X45UCp9iGCBwKyNs-UZgzg,28839
166
+ tests/test_allocator.py,sha256=HpfFB2oCbbs3AAuyyykVKU3fZHx_uBnnQSzmQxKd-B0,29068
166
167
  tests/test_coalescing.py,sha256=THQuYMoyb1idC7Y7b3B6YvhJolfjbRrBWG27senI7tE,15607
167
168
  tests/test_controller.py,sha256=CIMb-ApmBcBj1eCqccDUAbVyyJWMGooAha5gQk0AoeY,31452
168
- tests/test_debugger.py,sha256=cZ54mzKRQL0ZOZrS7b7bAH_gVx00Wl4bPZzdhEIJFn4,45372
169
+ tests/test_debugger.py,sha256=PgxxBLIwia_n6wG31XqmNKT8B7Iwb31K2nMnSztBLUo,45597
169
170
  tests/test_device_mesh.py,sha256=DrbezYOM0thfP9MgLXb5-F0VoLOmSz5GR0GwjR_3bE4,5290
170
171
  tests/test_env_before_cuda.py,sha256=Jyb7Zz0x8SjkjpXIn8ToqrZyX97890ca2E-rdQQKmYE,5416
171
172
  tests/test_fault_tolerance.py,sha256=u4wmG1z5MZ6PY6us5zUZHJh2pUC3L7i0wsUfRDNHmxA,14144
172
173
  tests/test_future.py,sha256=cXzaNi2YDwVyjR541ScXmgktX1YFsKzbl8wep0DMVbk,3032
173
174
  tests/test_grad_generator.py,sha256=p4Pm4kMEeGldt2jUVAkGKCB0mLccKI28pltH6OTGbQA,3412
174
175
  tests/test_mesh_trait.py,sha256=SOKRnO1NzSHS77oiAaS9DEtKpyHJ7mbWJoUJrAJ5QGQ,976
175
- tests/test_mock_cuda.py,sha256=5hisElxeLJ5MHw3KM9gwxBiXiMaG-Rm382u3AsQcDOI,3068
176
+ tests/test_mock_cuda.py,sha256=mbIEB7FoSu85Vjzmf-jn26xAbR3bjQVqeN_RKUkNVoM,3238
176
177
  tests/test_pdb_actor.py,sha256=5KJhuhcZDPWMdjC6eAtDdwnz1W7jNFXvIrMSFaCWaPw,3858
177
178
  tests/test_python_actors.py,sha256=S1wKeRkSXUciYfU30V3_4HdY6Z-FyWsoHrR-qaPe0eA,48901
178
179
  tests/test_rdma.py,sha256=AyjYvvr45ucIMfgvfkPeJRyGaGCE_XkLmSduTOsE66A,6249
@@ -186,9 +187,10 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
186
187
  tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
187
188
  tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
188
189
  tests/simulator/test_worker.py,sha256=QrWWIJ3HDgDLkBPRc2mwYPlOQoXQcj1qRfc0WUfKkFY,3507
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,,
190
+ torchmonarch_nightly-2025.9.11.data/scripts/process_allocator,sha256=MMiQRu_WpSlJgtLNwdHsTIob9S9WvmuJACLVgeD-Xcw,21375264
191
+ torchmonarch_nightly-2025.9.11.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
192
+ torchmonarch_nightly-2025.9.11.dist-info/METADATA,sha256=7d4Z2haoAiimpbvWC2tM_6SY17rRokRQX4HfW2DYui0,6474
193
+ torchmonarch_nightly-2025.9.11.dist-info/WHEEL,sha256=OlISbtpDcfagPrLwG7WtpcZbPTUnoKPnwphA_26fNqE,104
194
+ torchmonarch_nightly-2025.9.11.dist-info/entry_points.txt,sha256=60QVSpYVzkzS4iDOiLp0fsLxVp47X3J2l3v7W-59LMo,117
195
+ torchmonarch_nightly-2025.9.11.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
196
+ torchmonarch_nightly-2025.9.11.dist-info/RECORD,,