torchmonarch-nightly 2025.6.11__cp310-cp310-manylinux2014_x86_64.whl → 2025.6.13__cp310-cp310-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/telemetry.py ADDED
@@ -0,0 +1,19 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the BSD-style license found in the
5
+ # LICENSE file in the root directory of this source tree.
6
+
7
+ # pyre-strict
8
+
9
+
10
+ import logging
11
+
12
+ from monarch._rust_bindings.hyperactor_extension.telemetry import ( # @manual=//monarch/monarch_extension:monarch_extension
13
+ forward_to_tracing,
14
+ )
15
+
16
+
17
+ class TracingForwarder(logging.Handler):
18
+ def emit(self, record: logging.LogRecord) -> None:
19
+ forward_to_tracing(record)
tests/test_allocator.py CHANGED
@@ -174,7 +174,7 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
174
174
  actor = await proc_mesh.spawn("test_actor", TestActor)
175
175
 
176
176
  values = await actor.compute_world_size.call(
177
- master_addr="::",
177
+ master_addr="0.0.0.0",
178
178
  master_port=get_free_port(),
179
179
  )
180
180
 
@@ -206,10 +206,10 @@ class TestRemoteAllocator(unittest.IsolatedAsyncioTestCase):
206
206
  actor_b = await proc_mesh_b.spawn("actor_b", TestActor)
207
207
 
208
208
  results_a = await actor_a.compute_world_size.call(
209
- master_addr="::", master_port=get_free_port()
209
+ master_addr="0.0.0.0", master_port=get_free_port()
210
210
  )
211
211
  results_b = await actor_b.compute_world_size.call(
212
- master_addr="::", master_port=get_free_port()
212
+ master_addr="0.0.0.0", master_port=get_free_port()
213
213
  )
214
214
 
215
215
  self.assert_computed_world_size(results_a, 2) # a is a 1x2 mesh
tests/test_coalescing.py CHANGED
@@ -78,7 +78,7 @@ class TestCoalescing:
78
78
  num_hosts,
79
79
  gpu_per_host,
80
80
  activate,
81
- rust=backend_type == BackendType.RS,
81
+ backend=str(backend_type),
82
82
  )
83
83
 
84
84
  @property
tests/test_controller.py CHANGED
@@ -96,7 +96,7 @@ remote_sleep = remote("time.sleep", propagate="inspect")
96
96
  torch.cuda.device_count() < 2,
97
97
  reason="Not enough GPUs, this test requires at least 2 GPUs",
98
98
  )
99
- @pytest.mark.parametrize("backend_type", [BackendType.PY, BackendType.RS])
99
+ @pytest.mark.parametrize("backend_type", [BackendType.PY, BackendType.RS, "mesh"])
100
100
  # Set global timeout--sandcastle's timeout is 600s. A test that sandcastle times
101
101
  # out is not counted as a failure, so we set a more restrictive timeout to
102
102
  # ensure we see a hard failure in CI.
@@ -114,7 +114,7 @@ class TestController:
114
114
  N,
115
115
  gpu_per_host,
116
116
  activate,
117
- rust=backend_type == BackendType.RS,
117
+ backend=str(backend_type),
118
118
  )
119
119
 
120
120
  def test_errors(self, backend_type):
@@ -512,6 +512,7 @@ class TestController:
512
512
  monarch.random.make_deterministic()
513
513
  for device in ("cpu", "cuda"):
514
514
  a = monarch.random.get_state()
515
+ monarch.inspect(a)
515
516
  first = torch.rand(1, device=device)
516
517
  monarch.random.set_state(a)
517
518
  second = torch.rand(1, device=device)
@@ -601,6 +602,15 @@ class TestController:
601
602
  assert torch.equal(moved_tensor_a, torch.tensor([1.0]))
602
603
  assert torch.equal(moved_tensor_b, torch.tensor([2.0]))
603
604
 
605
+ def test_hanging_error(self, backend_type):
606
+ if backend_type != "mesh":
607
+ pytest.skip("only relevant for mesh backend")
608
+ with self.local_device_mesh(2, 2, backend_type) as device_mesh:
609
+ remote(lambda: torch.rand(3) + torch.rand(4), propagate=lambda: None)()
610
+
611
+ with pytest.raises(Exception, match="The size of tensor"):
612
+ device_mesh.client.shutdown()
613
+
604
614
  def test_slice_mesh_pytree(self, backend_type):
605
615
  with self.local_device_mesh(2, 2, backend_type) as device_mesh:
606
616
  a = device_mesh.rank(("host")) + torch.zeros((1,), device="cuda")
@@ -4,8 +4,12 @@
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
+ import asyncio
7
8
  import operator
9
+ import os
10
+ import re
8
11
  from types import ModuleType
12
+ from unittest.mock import AsyncMock, patch
9
13
 
10
14
  import monarch
11
15
 
@@ -20,7 +24,9 @@ from monarch.actor_mesh import (
20
24
  current_rank,
21
25
  current_size,
22
26
  endpoint,
27
+ MonarchContext,
23
28
  )
29
+ from monarch.debugger import init_debugging
24
30
 
25
31
  from monarch.mesh_controller import spawn_tensor_engine
26
32
 
@@ -384,6 +390,10 @@ def test_rust_binding_modules_correct() -> None:
384
390
  check(bindings, "monarch._rust_bindings")
385
391
 
386
392
 
393
+ @pytest.mark.skipif(
394
+ torch.cuda.device_count() < 2,
395
+ reason="Not enough GPUs, this test requires at least 2 GPUs",
396
+ )
387
397
  def test_tensor_engine() -> None:
388
398
  pm = proc_mesh(gpus=2).get()
389
399
 
@@ -399,3 +409,143 @@ def test_tensor_engine() -> None:
399
409
  assert torch.allclose(torch.zeros(3, 4), f)
400
410
 
401
411
  dm.exit()
412
+
413
+
414
+ def _debugee_actor_internal(rank):
415
+ if rank == 0:
416
+ breakpoint() # noqa
417
+ rank += 1
418
+ return rank
419
+ elif rank == 1:
420
+ breakpoint() # noqa
421
+ rank += 2
422
+ return rank
423
+ elif rank == 2:
424
+ breakpoint() # noqa
425
+ rank += 3
426
+ raise ValueError("bad rank")
427
+ elif rank == 3:
428
+ breakpoint() # noqa
429
+ rank += 4
430
+ return rank
431
+
432
+
433
+ class DebugeeActor(Actor):
434
+ @endpoint
435
+ async def to_debug(self):
436
+ rank = MonarchContext.get().point.rank
437
+ return _debugee_actor_internal(rank)
438
+
439
+
440
+ async def test_debug() -> None:
441
+ input_mock = AsyncMock()
442
+ input_mock.side_effect = [
443
+ "attach 1",
444
+ "n",
445
+ "n",
446
+ "n",
447
+ "n",
448
+ "detach",
449
+ "attach 1",
450
+ "detach",
451
+ "quit",
452
+ "cast 0,3 n",
453
+ "cast 0,3 n",
454
+ # Attaching to 0 and 3 ensures that when we call "list"
455
+ # the next time, their function/lineno info will be
456
+ # up-to-date.
457
+ "attach 0",
458
+ "detach",
459
+ "attach 3",
460
+ "detach",
461
+ "quit",
462
+ "attach 2",
463
+ "c",
464
+ "quit",
465
+ "continue",
466
+ ]
467
+
468
+ outputs = []
469
+
470
+ def _patch_output(msg):
471
+ nonlocal outputs
472
+ outputs.append(msg)
473
+
474
+ with patch("monarch.debugger._debugger_input", side_effect=input_mock), patch(
475
+ "monarch.debugger._debugger_output", new=_patch_output
476
+ ):
477
+ proc = await proc_mesh(hosts=2, gpus=2)
478
+ debugee = await proc.spawn("debugee", DebugeeActor)
479
+ debug_client = await init_debugging(debugee)
480
+
481
+ fut = debugee.to_debug.call()
482
+ await debug_client.wait_pending_session.call_one()
483
+ breakpoints = []
484
+ for i in range(10):
485
+ breakpoints = await debug_client.list.call_one()
486
+ if len(breakpoints) == 4:
487
+ break
488
+ await asyncio.sleep(1)
489
+ if i == 9:
490
+ raise RuntimeError("timed out waiting for breakpoints")
491
+
492
+ initial_linenos = {}
493
+ for i in range(len(breakpoints)):
494
+ rank, coords, _, _, function, lineno = breakpoints[i]
495
+ initial_linenos[rank] = lineno
496
+ assert rank == i
497
+ assert coords == {"hosts": rank % 2, "gpus": rank // 2}
498
+ assert function == "test_python_actors._debugee_actor_internal"
499
+ assert lineno == breakpoints[0][5] + 4 * rank
500
+
501
+ await debug_client.enter.call_one()
502
+
503
+ # Check that when detaching and re-attaching to a session, the last portion of the output is repeated
504
+ expected_last_output = [
505
+ r"--Return--",
506
+ r"\n",
507
+ r"> (/.*/)+test_python_actors.py\(\d+\)to_debug\(\)->3\n-> return _debugee_actor_internal\(rank\)",
508
+ r"\n",
509
+ r"\(Pdb\) ",
510
+ ]
511
+ output_len = len(expected_last_output)
512
+ assert outputs[-2 * output_len : -output_len] == outputs[-output_len:]
513
+ for real_output, expected_output in zip(
514
+ outputs[-output_len:], expected_last_output
515
+ ):
516
+ assert re.match(expected_output, real_output) is not None
517
+
518
+ breakpoints = await debug_client.list.call_one()
519
+ for i in range(len(breakpoints)):
520
+ if i == 1:
521
+ assert breakpoints[i][4] == "test_python_actors.to_debug"
522
+ else:
523
+ assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
524
+ assert breakpoints[i][5] == initial_linenos[i]
525
+
526
+ await debug_client.enter.call_one()
527
+
528
+ breakpoints = await debug_client.list.call_one()
529
+ for i in range(len(breakpoints)):
530
+ if i == 1:
531
+ assert breakpoints[i][4] == "test_python_actors.to_debug"
532
+ elif i in (0, 3):
533
+ assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
534
+ assert breakpoints[i][5] == initial_linenos[i] + 2
535
+ else:
536
+ assert breakpoints[i][4] == "test_python_actors._debugee_actor_internal"
537
+ assert breakpoints[i][5] == initial_linenos[i]
538
+
539
+ await debug_client.enter.call_one()
540
+
541
+ breakpoints = await debug_client.list.call_one()
542
+ assert len(breakpoints) == 3
543
+ for i, rank in enumerate((0, 1, 3)):
544
+ assert breakpoints[i][0] == rank
545
+
546
+ await debug_client.enter.call_one()
547
+ breakpoints = await debug_client.list.call_one()
548
+ assert len(breakpoints) == 0
549
+
550
+ with pytest.raises(monarch.actor_mesh.ActorError, match="ValueError: bad rank"):
551
+ await fut
@@ -169,7 +169,7 @@ class RemoteFunctionsTestBase:
169
169
  num_hosts,
170
170
  gpu_per_host,
171
171
  activate,
172
- rust=backend_type == BackendType.RS,
172
+ backend=str(backend_type),
173
173
  )
174
174
 
175
175
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: torchmonarch-nightly
3
- Version: 2025.6.11
3
+ Version: 2025.6.13
4
4
  Summary: Monarch: Single controller library
5
5
  Author: Meta
6
6
  Author-email: oncall+monarch@xmail.facebook.com
@@ -1,20 +1,22 @@
1
1
  monarch/__init__.py,sha256=iUvWHc0-7Q2tovRoRxOIiA3TsefMXCbWl-jEfQ2djew,6897
2
- monarch/_rust_bindings.so,sha256=g2tlum6iqfdR4KRkVhp_BwUmlz0tYUSITNVaJjSNitE,40645720
3
- monarch/_testing.py,sha256=MN8DK1e-wzV0-R_nFW1b_7-O5oKfWvZ12BMGD4Z7PQk,6755
4
- monarch/actor_mesh.py,sha256=4I8xp_XIM6KZJY_jXVjJ8tPW2l1J4a6ZhrknU7zKbAk,23947
2
+ monarch/_rust_bindings.so,sha256=FJb4gGPNDWqT1nPkxEYSX4hEsIbjb_v8Oa0RDwMcH5A,40302936
3
+ monarch/_testing.py,sha256=jOIOG6jcZBzvEvG_DwSnwCkaMVXvSun6sJAG6nXemww,7859
4
+ monarch/actor_mesh.py,sha256=8Ih3CIArLTyZmWSHppXm5N2WlAjmGXpaQhkkFtjJFxc,25351
5
5
  monarch/allocator.py,sha256=ylvYTf31o-PT385cYJPhi17uNbC4yl_RAraqD0fVe4g,4112
6
- monarch/bootstrap_main.py,sha256=EYaTMA1lxy2213L_04drTKlJvZQjzNdD3jeUHiqSBJc,2578
6
+ monarch/bootstrap_main.py,sha256=RCUQhJk07yMFiKp6HzQuqZFUpkgsT9kVEyimiwjn6_E,1827
7
7
  monarch/cached_remote_function.py,sha256=kYdB6r4OHx_T_uX4q3tCNcp1t2DJwF8tPTIahUiT2pU,8785
8
+ monarch/debugger.py,sha256=AdlvOG3X-9Pw9c1DLQYEy4vjEfh0ZtwtsNJEFLFzN8o,13312
8
9
  monarch/fetch.py,sha256=61jxo7sx4QNUTkc0_rF5NaJROen4tKbAaiIjrXWLOvg,1705
9
10
  monarch/future.py,sha256=lcdFEe7m1shYPPuvZ1RkS6JUIChEKGBWe3v7x_nu4Hg,731
10
11
  monarch/gradient_generator.py,sha256=Rl3dmXGceTdCc1mYBg2JciR88ywGPnW7TVkL86KwqEA,6366
11
12
  monarch/memory.py,sha256=ol86dBhFAJqg78iF25-BuK0wuwj1onR8FIioZ_B0gjw,1377
12
- monarch/mesh_controller.py,sha256=A3G8Z5S0w3mjCVI2r6YGM6K3BUs3ZHU8PFo6kCaYTU4,8615
13
- monarch/monarch_controller,sha256=41B7zLv7M7_CSmChN5bfvVrygi2VeBhMDcNQXlnbVZU,20394376
13
+ monarch/mesh_controller.py,sha256=Xft2edk7rz8_PPe-iIUZ09P-j4JDPGADBGHBiuiZ7YY,10363
14
+ monarch/monarch_controller,sha256=mE9pvcBDKwW_4zOZlO17PJDk7W6z5skzIX5rxHQfKOs,20238936
14
15
  monarch/notebook.py,sha256=zu9MKDFKf1-rCM2TqFSRJjMBeiWuKcJSyUFLvoZRQzs,25949
15
16
  monarch/opaque_module.py,sha256=oajOu_WD1hD4hxE8HDdO-tvWY7KDHWd7VaAhJEa5L2I,10446
16
17
  monarch/opaque_object.py,sha256=IVpll4pyuKZMo_EnPh4s0qnx8RlAcJrJ1yoLX6E75wQ,2782
17
- monarch/proc_mesh.py,sha256=pVN0BLnjGaty6-UGn1U81rNdmfiDvD4gO1c4bISHtqs,6807
18
+ monarch/pdb_wrapper.py,sha256=gm46AZnfR4amH1vYFWnWivEv5MaU3Nb6KIWjSM8KjWM,4052
19
+ monarch/proc_mesh.py,sha256=xoaReM9Ab9TWkesxedWSyyk4TMD0HLV88dQ8CQcbqTI,6892
18
20
  monarch/profiler.py,sha256=TQ9fnVM8H7smBWtYdB_6Irtzz8DBOmcp7U1T3wlUmco,4911
19
21
  monarch/python_local_mesh.py,sha256=YsureIzR9uGlNVrKd4vRghxOXBeYabkt9lICRErfRAI,3536
20
22
  monarch/random.py,sha256=f9QR7Esu4Vxqxs-KCf5QYyVqlWvXJ3-UtG90L_h4j40,1527
@@ -23,18 +25,19 @@ monarch/remote_class.py,sha256=-OAowzU1aDP6i4ik_SjXntVUC9h4dqAzgqwohkQ6Grc,4167
23
25
  monarch/rust_backend_mesh.py,sha256=1htC62of4MgFtkezWGlsxSFtKJdc0CIeqeSuOx7yu3M,9944
24
26
  monarch/rust_local_mesh.py,sha256=7ASptybn3wy4J7eoBc7LhGW4j4AA6bigl5Kuhyflw8s,47405
25
27
  monarch/sim_mesh.py,sha256=9wkS99L0EpG2Gldi-nzA-3ww7z__DQ7Qp2uReMfn188,12183
28
+ monarch/telemetry.py,sha256=7JUZWaoD2Yn5Ae_7kNhkLFRBLYaSGfH071_m_qfVehI,525
26
29
  monarch/tensor_worker_main.py,sha256=Nbarl2sJKIddLeaRFsaUnqOerLHjzggUr9SqCr2_GYI,8300
27
30
  monarch/tensorboard.py,sha256=MnLgH5lbqeUJauEuirEgR6L_qYl2NGdtwZOWIAuOZao,2587
28
31
  monarch/world_mesh.py,sha256=GqZpFoVNJPxYa70rLYgv0vu8Vg1nXqx_GYERRb1E9Pc,975
29
32
  monarch/_monarch/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
30
- monarch/_monarch/hyperactor/__init__.py,sha256=H-9w80ejck1lBVfpqOLikT-mPLMLpi7ZZfqrmprMxL0,1748
33
+ monarch/_monarch/hyperactor/__init__.py,sha256=JLnB2_-bKHLqAcZwehKvPkbwbxF-gCq5LODJiWGU_b8,1384
31
34
  monarch/_monarch/selection/__init__.py,sha256=47arOElvlK0uYcTNrd__1BwXSfsMosnVw4_tgu2hA-I,381
32
35
  monarch/_monarch/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
36
  monarch/_monarch/worker/debugger.py,sha256=JJZwRPTgQO2emz-hrMelkOSxJFIR3dV4ZA6e7ftYUKA,3614
34
37
  monarch/_monarch/worker/logging.py,sha256=nJUkIuKhPqRZaNDOT7MVbFFjcITZQf_CiFRLFKJJqsw,3591
35
38
  monarch/builtins/__init__.py,sha256=QcfnHZGbc2qktBg7DyZt2ruE6VahnIt4S8lEZLHdJqU,443
36
39
  monarch/builtins/log.py,sha256=H1QkuVzwxyi36Zyv-XR0VN0QsNimBWwxE1__fjs0_2o,554
37
- monarch/builtins/random.py,sha256=xVt0cJBRBhCOH1Eioy8O511rp7HKFSCVXRwjBy02K5I,1798
40
+ monarch/builtins/random.py,sha256=wPbvscg7u53EXpMFo885fO2XOlsyjrNAJ4rBxLzfxdg,1839
38
41
  monarch/common/_C.pyi,sha256=kHY2G3ksMAjQJ6IcPb4F1bBh5knzw5RVVNhhBlEmwFU,314
39
42
  monarch/common/_C.so,sha256=gVDCDUQSKiPHwLPIpyxcRgiv8uF_quH1LpgI5Lhle9Y,715600
40
43
  monarch/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -43,7 +46,7 @@ monarch/common/_device_utils.py,sha256=gBpl23wMjppVAEzzj8U9HyX-B7Bs2_3ftiMAkzUS4
43
46
  monarch/common/_tensor_to_table.py,sha256=yRjCNwvtl188Z1Dwkx3ZU-Bh2mwYnQ0Lnue2RAztwvc,5753
44
47
  monarch/common/base_tensor.py,sha256=ujRzR6lWaeCdPv2JX0vCR-VsCWn-3SHaJIkZH1Sw9FQ,1159
45
48
  monarch/common/borrows.py,sha256=7KR62xoUat1T6FyADsdHsxVAVIJDvfJWUnPO-xx277U,5307
46
- monarch/common/client.py,sha256=wOAnoaLmabrcv7mK_z_HVnk_ivGe5igPy3iWZI4LVZc,24517
49
+ monarch/common/client.py,sha256=axo37s_z17nYQGOZG5fi_0zUEJ_8qw7INjs-Kw2vaVo,24937
47
50
  monarch/common/constants.py,sha256=ohvsVYMpfeWopv3KXDAeHWDFLukwc-OY37VRxpKNBE8,300
48
51
  monarch/common/context_manager.py,sha256=GOeyaFbyCqvQmkJ0oI7q6IxRd8_0mVyYKZRccI8iaug,1067
49
52
  monarch/common/controller_api.py,sha256=djGkK5aSd-V6pBkr3uBCXbfJv3OKf2o2VbBXJgFF2WI,3202
@@ -65,7 +68,7 @@ monarch/common/reference.py,sha256=O26lkzEeVwj0S1xEy-OLqdHVnACmmlbQCUmXRrW4n1Q,9
65
68
  monarch/common/remote.py,sha256=qZWXkShX20l07TseQSpVECh2yXZaVKYUvQXkeEM-zvY,9220
66
69
  monarch/common/selection.py,sha256=lpWFbZs3ArYy29e-53eoAVAjQFksf1RvZz9NvM0CUW4,308
67
70
  monarch/common/shape.py,sha256=k6-0S0U19PmrfP62SMb9Ihx6_I4QQFUGErloZn8GcZ0,8144
68
- monarch/common/stream.py,sha256=J9UCqhSXSbKYFGtbKaqAq1Vgmg6DJcLzsXXm-tsBQ-w,3499
71
+ monarch/common/stream.py,sha256=_ejoxafHtdD10lLzznRCXKwrkZ_ZH9k_VTgiA5yfBrI,3583
69
72
  monarch/common/tensor.py,sha256=mSXiHoD0Up4m2RLdQcsbesaz2N4QCFS34UNNX3Dbldk,28842
70
73
  monarch/common/tensor_factory.py,sha256=qm8NZx-5ezMAFjNLiXQvb66okm5XgdboB_GRarGOdN0,801
71
74
  monarch/common/tree.py,sha256=1DG3siiE7ixBV6v5cwN8RT_17aJhYZTE-L3i7wZe2_c,2282
@@ -132,17 +135,17 @@ tests/error_test_binary.py,sha256=64H-ucdkQ2i7GD8sidStl227cOy7gyeqvO4kTm1y7Ic,48
132
135
  tests/sleep_binary.py,sha256=XfLYaAfwm9xgzM-svs8fhAeFhwYIg6SyVEnx4e6wbUw,1009
133
136
  tests/test_actor_error.py,sha256=z3Sf4lteUggTryPLOhRKJ55v0MwVK3a7QN7-U2U9iJg,7484
134
137
  tests/test_alloc.py,sha256=D6DdQbtOZEvvnnc7LV-WyWFMk0Xb77eblH6Oz90zJTA,745
135
- tests/test_allocator.py,sha256=dqQbQyOjOX3JgnHIPT0iawT0wMeFztbLCYjK2tl8GcI,8149
136
- tests/test_coalescing.py,sha256=-KtAWzTaeXbyzltplfojavx0iFeeZnvej-tFTlu2p5k,15616
137
- tests/test_controller.py,sha256=yxuVp2DG3TDKJlwuE3cFm9dbWMlbrYtG1uHfvVWRYbw,30935
138
+ tests/test_allocator.py,sha256=P11sQ95ADjzC_-CfPs3CEP80nP8sn7wW8vVPsmpSVoM,8164
139
+ tests/test_coalescing.py,sha256=JZ4YgQNlWWs7N-Z8KCCXQPANcuyyXEKjeHIXYbPnQhk,15606
140
+ tests/test_controller.py,sha256=Rp_kW20zYT8ocsK5LX0Ha3LB9azS2LSKpp8n_dBlzVU,31384
138
141
  tests/test_device_mesh.py,sha256=DrbezYOM0thfP9MgLXb5-F0VoLOmSz5GR0GwjR_3bE4,5290
139
142
  tests/test_fault_tolerance.py,sha256=u4wmG1z5MZ6PY6us5zUZHJh2pUC3L7i0wsUfRDNHmxA,14144
140
143
  tests/test_future.py,sha256=cXzaNi2YDwVyjR541ScXmgktX1YFsKzbl8wep0DMVbk,3032
141
144
  tests/test_grad_generator.py,sha256=p4Pm4kMEeGldt2jUVAkGKCB0mLccKI28pltH6OTGbQA,3412
142
145
  tests/test_mock_cuda.py,sha256=5hisElxeLJ5MHw3KM9gwxBiXiMaG-Rm382u3AsQcDOI,3068
143
146
  tests/test_pdb_actor.py,sha256=5KJhuhcZDPWMdjC6eAtDdwnz1W7jNFXvIrMSFaCWaPw,3858
144
- tests/test_python_actors.py,sha256=gP6MDN2BL282qInUGP9untlpsqqB2uy1Iq5gUXnXcUo,11387
145
- tests/test_remote_functions.py,sha256=ExqYlRQWRabpGBuKvNIOa8Hwj-iXuP87Jfb9i5RhaGs,50066
147
+ tests/test_python_actors.py,sha256=MPdXtnj4ZeyAaecDFJMXdz29KvimF9iB3bASgoo6-iM,16201
148
+ tests/test_remote_functions.py,sha256=5nxYB8dfA9NT9f9Od9O3htgQtPbiRNiXZ1Kgtn75sOQ,50056
146
149
  tests/test_rust_backend.py,sha256=94S3R995ZkyIhEiBsM5flcjf5X7bscEAHBtInbTRFe8,7776
147
150
  tests/test_signal_safe_block_on.py,sha256=bmal0XgzJowZXJV6T1Blow5a-vZluYWusCThLMGxyTE,3336
148
151
  tests/test_sim_backend.py,sha256=RckCkHO3DxKsAGdZMcIzRnd6YJXwDim1D5-xbBbgKio,1473
@@ -151,9 +154,9 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
151
154
  tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
152
155
  tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
153
156
  tests/simulator/test_worker.py,sha256=QrWWIJ3HDgDLkBPRc2mwYPlOQoXQcj1qRfc0WUfKkFY,3507
154
- torchmonarch_nightly-2025.6.11.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
155
- torchmonarch_nightly-2025.6.11.dist-info/METADATA,sha256=SCdAxETtVZ5ESzbLepOp6mf1L4G-HSYVkjdRFT7D0kg,2772
156
- torchmonarch_nightly-2025.6.11.dist-info/WHEEL,sha256=_wZSFk0d90K9wOBp8Q-UGxshyiJ987JoPiyUBNC6VLk,104
157
- torchmonarch_nightly-2025.6.11.dist-info/entry_points.txt,sha256=sqfQ16oZqjEvttUI-uj9BBXIIE6jt05bYFSmy-2hyXI,106
158
- torchmonarch_nightly-2025.6.11.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
159
- torchmonarch_nightly-2025.6.11.dist-info/RECORD,,
157
+ torchmonarch_nightly-2025.6.13.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
158
+ torchmonarch_nightly-2025.6.13.dist-info/METADATA,sha256=WhintlKk3a9WRrjo-QLNntfi87q98I4gcZW_0f42q48,2772
159
+ torchmonarch_nightly-2025.6.13.dist-info/WHEEL,sha256=_wZSFk0d90K9wOBp8Q-UGxshyiJ987JoPiyUBNC6VLk,104
160
+ torchmonarch_nightly-2025.6.13.dist-info/entry_points.txt,sha256=sqfQ16oZqjEvttUI-uj9BBXIIE6jt05bYFSmy-2hyXI,106
161
+ torchmonarch_nightly-2025.6.13.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
162
+ torchmonarch_nightly-2025.6.13.dist-info/RECORD,,