torchmonarch-nightly 2025.7.29__cp313-cp313-manylinux2014_x86_64.whl → 2025.7.30__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/_rust_bindings.so +0 -0
- monarch/_src/actor/actor_mesh.py +9 -5
- monarch/_src/actor/allocator.py +5 -6
- monarch/_src/actor/debugger.py +159 -98
- monarch/_src/actor/endpoint.py +15 -4
- monarch/_src/actor/future.py +79 -32
- monarch/_src/actor/pdb_wrapper.py +10 -4
- monarch/_src/actor/proc_mesh.py +82 -114
- monarch/_src/actor/shape.py +32 -38
- monarch/_src/tensor_engine/rdma.py +12 -6
- monarch/mesh_controller.py +37 -4
- monarch/monarch_controller +0 -0
- tests/test_actor_error.py +3 -4
- tests/test_actor_shape.py +114 -0
- tests/test_debugger.py +406 -178
- tests/test_python_actors.py +67 -67
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/METADATA +1 -1
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/RECORD +22 -21
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/WHEEL +0 -0
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/entry_points.txt +0 -0
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/licenses/LICENSE +0 -0
- {torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/top_level.txt +0 -0
tests/test_python_actors.py
CHANGED
@@ -90,7 +90,7 @@ async def test_stream():
|
|
90
90
|
v = await proc.spawn("counter2", Counter, 3)
|
91
91
|
v.incr.broadcast()
|
92
92
|
|
93
|
-
assert 8 == sum([x
|
93
|
+
assert 8 == sum([await x for x in v.value.stream()])
|
94
94
|
|
95
95
|
|
96
96
|
class To(Actor):
|
@@ -102,14 +102,14 @@ class To(Actor):
|
|
102
102
|
class From(Actor):
|
103
103
|
@endpoint
|
104
104
|
async def get(self, to: To):
|
105
|
-
return [x
|
105
|
+
return [await x for x in to.whoami.stream()]
|
106
106
|
|
107
107
|
|
108
108
|
async def test_mesh_passed_to_mesh():
|
109
109
|
proc = await local_proc_mesh(gpus=2)
|
110
110
|
f = await proc.spawn("from", From)
|
111
111
|
t = await proc.spawn("to", To)
|
112
|
-
all = [y
|
112
|
+
all = [y for x in f.get.stream(t) for y in await x]
|
113
113
|
assert len(all) == 4
|
114
114
|
assert all[0] != all[1]
|
115
115
|
|
@@ -119,7 +119,7 @@ async def test_mesh_passed_to_mesh_on_different_proc_mesh():
|
|
119
119
|
proc2 = await local_proc_mesh(gpus=2)
|
120
120
|
f = await proc.spawn("from", From)
|
121
121
|
t = await proc2.spawn("to", To)
|
122
|
-
all = [y
|
122
|
+
all = [y for x in f.get.stream(t) for y in await x]
|
123
123
|
assert len(all) == 4
|
124
124
|
assert all[0] != all[1]
|
125
125
|
|
@@ -133,7 +133,7 @@ async def test_actor_slicing():
|
|
133
133
|
|
134
134
|
assert await t.slice(gpus=0).whoami.call() != await t.slice(gpus=1).whoami.call()
|
135
135
|
|
136
|
-
result = [y
|
136
|
+
result = [y for x in f.get.stream(t.slice(gpus=0)) for y in await x]
|
137
137
|
assert len(result) == 2
|
138
138
|
|
139
139
|
assert result[0] == result[1]
|
@@ -348,96 +348,96 @@ async def awaitit(f):
|
|
348
348
|
return await f
|
349
349
|
|
350
350
|
|
351
|
-
def test_actor_future() -> None:
|
352
|
-
|
351
|
+
# def test_actor_future() -> None:
|
352
|
+
# v = 0
|
353
353
|
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
354
|
+
# async def incr():
|
355
|
+
# nonlocal v
|
356
|
+
# v += 1
|
357
|
+
# return v
|
358
358
|
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
359
|
+
# # can use async implementation from sync
|
360
|
+
# # if no non-blocking is provided
|
361
|
+
# f = Future(impl=incr, requires_loop=False)
|
362
|
+
# assert f.get() == 1
|
363
|
+
# assert v == 1
|
364
|
+
# assert f.get() == 1
|
365
|
+
# assert asyncio.run(awaitit(f)) == 1
|
366
366
|
|
367
|
-
|
368
|
-
|
369
|
-
|
367
|
+
# f = Future(impl=incr, requires_loop=False)
|
368
|
+
# assert asyncio.run(awaitit(f)) == 2
|
369
|
+
# assert f.get() == 2
|
370
370
|
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
371
|
+
# async def incr2():
|
372
|
+
# nonlocal v
|
373
|
+
# v += 2
|
374
|
+
# return v
|
375
375
|
|
376
|
-
|
377
|
-
|
378
|
-
|
376
|
+
# # Use non-blocking optimization if provided
|
377
|
+
# f = Future(impl=incr2)
|
378
|
+
# assert f.get() == 4
|
379
379
|
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
380
|
+
# async def nope():
|
381
|
+
# nonlocal v
|
382
|
+
# v += 1
|
383
|
+
# raise ValueError("nope")
|
384
384
|
|
385
|
-
|
385
|
+
# f = Future(impl=nope, requires_loop=False)
|
386
386
|
|
387
|
-
|
388
|
-
|
387
|
+
# with pytest.raises(ValueError):
|
388
|
+
# f.get()
|
389
389
|
|
390
|
-
|
390
|
+
# assert v == 5
|
391
391
|
|
392
|
-
|
393
|
-
|
392
|
+
# with pytest.raises(ValueError):
|
393
|
+
# f.get()
|
394
394
|
|
395
|
-
|
395
|
+
# assert v == 5
|
396
396
|
|
397
|
-
|
398
|
-
|
397
|
+
# with pytest.raises(ValueError):
|
398
|
+
# asyncio.run(awaitit(f))
|
399
399
|
|
400
|
-
|
400
|
+
# assert v == 5
|
401
401
|
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
402
|
+
# async def nope2():
|
403
|
+
# nonlocal v
|
404
|
+
# v += 1
|
405
|
+
# raise ValueError("nope")
|
406
406
|
|
407
|
-
|
407
|
+
# f = Future(impl=nope2)
|
408
408
|
|
409
|
-
|
410
|
-
|
409
|
+
# with pytest.raises(ValueError):
|
410
|
+
# f.get()
|
411
411
|
|
412
|
-
|
412
|
+
# assert v == 6
|
413
413
|
|
414
|
-
|
415
|
-
|
414
|
+
# with pytest.raises(ValueError):
|
415
|
+
# f.result()
|
416
416
|
|
417
|
-
|
417
|
+
# assert f.exception() is not None
|
418
418
|
|
419
|
-
|
419
|
+
# assert v == 6
|
420
420
|
|
421
|
-
|
422
|
-
|
421
|
+
# with pytest.raises(ValueError):
|
422
|
+
# asyncio.run(awaitit(f))
|
423
423
|
|
424
|
-
|
424
|
+
# assert v == 6
|
425
425
|
|
426
|
-
|
427
|
-
|
426
|
+
# async def seven():
|
427
|
+
# return 7
|
428
428
|
|
429
|
-
|
429
|
+
# f = Future(impl=seven, requires_loop=False)
|
430
430
|
|
431
|
-
|
431
|
+
# assert 7 == f.get(timeout=0.001)
|
432
432
|
|
433
|
-
|
434
|
-
|
435
|
-
|
433
|
+
# async def neverfinish():
|
434
|
+
# f = asyncio.Future()
|
435
|
+
# await f
|
436
436
|
|
437
|
-
|
437
|
+
# f = Future(impl=neverfinish, requires_loop=True)
|
438
438
|
|
439
|
-
|
440
|
-
|
439
|
+
# with pytest.raises(asyncio.exceptions.TimeoutError):
|
440
|
+
# f.get(timeout=0.1)
|
441
441
|
|
442
442
|
|
443
443
|
class Printer(Actor):
|
{torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/RECORD
RENAMED
@@ -1,5 +1,5 @@
|
|
1
1
|
monarch/__init__.py,sha256=mgKiyD1kxky-1pvhMlNfF4VmxWnhi-FSYZNFzkW1BEM,7052
|
2
|
-
monarch/_rust_bindings.so,sha256=
|
2
|
+
monarch/_rust_bindings.so,sha256=r7qvxPiMHRlXvwxCM--hf3BgB0JYISYCRDpi64v5vO0,50331040
|
3
3
|
monarch/_testing.py,sha256=_3MYNMq-_0T1qXCj2vxrW13GlWGdUuVFMskQF2Gsw_o,7877
|
4
4
|
monarch/actor_mesh.py,sha256=VtPU9syi_vUdwDSJJ639Z4Y_EcWZUScyoj0lQ88RQPs,421
|
5
5
|
monarch/bootstrap_main.py,sha256=39OZpNMrfvvNJf-iwuNzgslzYA_ItaRPHfXGn_V74N0,524
|
@@ -7,8 +7,8 @@ monarch/cached_remote_function.py,sha256=kYdB6r4OHx_T_uX4q3tCNcp1t2DJwF8tPTIahUi
|
|
7
7
|
monarch/fetch.py,sha256=JMxC8HdWMvpik0T4E6e-gfxvmNnOkA0ul4eo4R3Jg_o,1712
|
8
8
|
monarch/gradient_generator.py,sha256=Rl3dmXGceTdCc1mYBg2JciR88ywGPnW7TVkL86KwqEA,6366
|
9
9
|
monarch/memory.py,sha256=ol86dBhFAJqg78iF25-BuK0wuwj1onR8FIioZ_B0gjw,1377
|
10
|
-
monarch/mesh_controller.py,sha256=
|
11
|
-
monarch/monarch_controller,sha256=
|
10
|
+
monarch/mesh_controller.py,sha256=R9ZnVV89wYva0QTAwOgHi_PkjYPEj_7_yF9810NHPak,14675
|
11
|
+
monarch/monarch_controller,sha256=Fzbm8eLjh8L_s83_DJN9vM0iaK0C1kaHF7jWBRANgcs,24036856
|
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,18 +25,18 @@ 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=
|
29
|
-
monarch/_src/actor/allocator.py,sha256=
|
28
|
+
monarch/_src/actor/actor_mesh.py,sha256=LWSb2NskXMx29kLxtQkjsJKAqsxOBkOIRty_sDeyFvA,30920
|
29
|
+
monarch/_src/actor/allocator.py,sha256=otfvkq3RfXHOQz12SMrgxBCjG0uD1a6wa_IrAwxpZ94,7278
|
30
30
|
monarch/_src/actor/bootstrap_main.py,sha256=e5eU3GvX60MWWmCty7VcZrAmukD29iJdWBysNgQ2o3A,2342
|
31
|
-
monarch/_src/actor/debugger.py,sha256=
|
31
|
+
monarch/_src/actor/debugger.py,sha256=viN-cJ8TobWdNR7y_GQA6fVGZ_VUqEM6vC8UIBFTJyA,22277
|
32
32
|
monarch/_src/actor/device_utils.py,sha256=gBpl23wMjppVAEzzj8U9HyX-B7Bs2_3ftiMAkzUS4j4,577
|
33
|
-
monarch/_src/actor/endpoint.py,sha256=
|
33
|
+
monarch/_src/actor/endpoint.py,sha256=NlcFQX_-LmAa9pirWnRCLiWWZu08lqQwS5ahkC9c8uU,11451
|
34
34
|
monarch/_src/actor/event_loop.py,sha256=2i4fKIkemBzua_t47BqVa2roZ6fWB6sbmMFPNx2zKN0,2832
|
35
|
-
monarch/_src/actor/future.py,sha256=
|
36
|
-
monarch/_src/actor/pdb_wrapper.py,sha256
|
35
|
+
monarch/_src/actor/future.py,sha256=7QDiPu6-CnTw7cN_GWomQa9qGxDo5yXqCSqgyCJ7roU,5195
|
36
|
+
monarch/_src/actor/pdb_wrapper.py,sha256=3pjk-eTSc7_rctDiZl-vilqTXQoaERGqyi1LueyoQGg,4342
|
37
37
|
monarch/_src/actor/pickle.py,sha256=jD_3E07OJmMIlcMOOrNFnIuRKZU2F_Q_BP-njDFXUNM,2044
|
38
|
-
monarch/_src/actor/proc_mesh.py,sha256=
|
39
|
-
monarch/_src/actor/shape.py,sha256=
|
38
|
+
monarch/_src/actor/proc_mesh.py,sha256=FNBRl-F1HdvdLWwHt0YrWYQhzXK4y1y-nSKnfwkznwA,15531
|
39
|
+
monarch/_src/actor/shape.py,sha256=E9kxf1RNym1LNJNXF18gNDmnAHR7SDcl3W4nXR65BPY,8293
|
40
40
|
monarch/_src/actor/sync_state.py,sha256=GB6bTAGztkcN8fZ9K7zXklOzjYzv6cvkJeBje20xFkE,471
|
41
41
|
monarch/_src/actor/tensor_engine_shim.py,sha256=hupavQ2rjPwECaTlDAhY-eeiEY18Wyyx59MZHcSEcYM,1622
|
42
42
|
monarch/_src/actor/code_sync/__init__.py,sha256=qzWoFNJEJvEbqab0QuHbkvhdz6FHi7BOTw6-2B3p0A4,378
|
@@ -44,7 +44,7 @@ monarch/_src/actor/code_sync/auto_reload.py,sha256=kqXCQuSzjxMw8bcDLsUZiL_NImo4j
|
|
44
44
|
monarch/_src/actor/telemetry/__init__.py,sha256=sHA5fmFdWU9jcUJVszNFhbXbjRSIBmuDXDMwJrrE0hw,523
|
45
45
|
monarch/_src/actor/telemetry/rust_span_tracing.py,sha256=UvkywuwjQX7tIyLdKZbF-fcmI_aHporAejsTRTyJNNg,4445
|
46
46
|
monarch/_src/tensor_engine/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
|
47
|
-
monarch/_src/tensor_engine/rdma.py,sha256=
|
47
|
+
monarch/_src/tensor_engine/rdma.py,sha256=Fo4IjlHW0qfZsjr_lOTaWEaeKT5TW7A4GMKWyUiCbtE,6419
|
48
48
|
monarch/actor/__init__.py,sha256=F87BC7owDdH_yRjLvMu6pbICbajndsEbtWG2W53Rapo,1050
|
49
49
|
monarch/builtins/__init__.py,sha256=QcfnHZGbc2qktBg7DyZt2ruE6VahnIt4S8lEZLHdJqU,443
|
50
50
|
monarch/builtins/log.py,sha256=H1QkuVzwxyi36Zyv-XR0VN0QsNimBWwxE1__fjs0_2o,554
|
@@ -144,12 +144,13 @@ tests/dispatch_bench.py,sha256=sU_m-8KAjQgYTsxI5khV664NdgLLutidni69Rtowk98,3933
|
|
144
144
|
tests/dispatch_bench_helper.py,sha256=1ORgAMrRgjAjmmWeCHLLQd_bda9mJk0rS2ucEbRu28s,633
|
145
145
|
tests/error_test_binary.py,sha256=cgdrnVI3SIzAFSRXTvASfiR8eKSMrZ7N3tSCLVkJo44,7880
|
146
146
|
tests/sleep_binary.py,sha256=XfLYaAfwm9xgzM-svs8fhAeFhwYIg6SyVEnx4e6wbUw,1009
|
147
|
-
tests/test_actor_error.py,sha256=
|
147
|
+
tests/test_actor_error.py,sha256=U7QL1jRn-YpS-o62imt7HFLPtaSbwMBu9xpD09Mb-Bc,20875
|
148
|
+
tests/test_actor_shape.py,sha256=ph-RC9sMNHWptZOCwQqMfG4lIUEzhp_pEnfhITeYdHM,4533
|
148
149
|
tests/test_alloc.py,sha256=IW7yJSaKxhOYc8SJtFyREakDUwiKWq9M0CGgYyBYHoc,743
|
149
150
|
tests/test_allocator.py,sha256=4LcUB4QRNGDp0qBWAyLM6ektmoxpO922f-NcHZziJ_w,28762
|
150
151
|
tests/test_coalescing.py,sha256=JZ4YgQNlWWs7N-Z8KCCXQPANcuyyXEKjeHIXYbPnQhk,15606
|
151
152
|
tests/test_controller.py,sha256=CIMb-ApmBcBj1eCqccDUAbVyyJWMGooAha5gQk0AoeY,31452
|
152
|
-
tests/test_debugger.py,sha256=
|
153
|
+
tests/test_debugger.py,sha256=9opgQXCBuZ1Z-7uOKI-FuGB0jLbLLilmWQKq0sE-dgQ,21950
|
153
154
|
tests/test_device_mesh.py,sha256=DrbezYOM0thfP9MgLXb5-F0VoLOmSz5GR0GwjR_3bE4,5290
|
154
155
|
tests/test_env_before_cuda.py,sha256=K5zdpXNRZB8hXQJaTN_CftcGHb3vzzdKasu8KFUoiCg,5440
|
155
156
|
tests/test_fault_tolerance.py,sha256=u4wmG1z5MZ6PY6us5zUZHJh2pUC3L7i0wsUfRDNHmxA,14144
|
@@ -157,7 +158,7 @@ tests/test_future.py,sha256=cXzaNi2YDwVyjR541ScXmgktX1YFsKzbl8wep0DMVbk,3032
|
|
157
158
|
tests/test_grad_generator.py,sha256=p4Pm4kMEeGldt2jUVAkGKCB0mLccKI28pltH6OTGbQA,3412
|
158
159
|
tests/test_mock_cuda.py,sha256=5hisElxeLJ5MHw3KM9gwxBiXiMaG-Rm382u3AsQcDOI,3068
|
159
160
|
tests/test_pdb_actor.py,sha256=5KJhuhcZDPWMdjC6eAtDdwnz1W7jNFXvIrMSFaCWaPw,3858
|
160
|
-
tests/test_python_actors.py,sha256=
|
161
|
+
tests/test_python_actors.py,sha256=kvsn2t2gmhnCM_T_euVe2O_DLj1OkzMrUNhhzBVPfs0,15664
|
161
162
|
tests/test_rdma.py,sha256=vgeCCsfOjRjlGoGR0SYRuTP_Sx5RlEUUKfO9ATK0d4E,6125
|
162
163
|
tests/test_remote_functions.py,sha256=VT65W7htp1jCsP9-AsiO1dofhx-4OebWEOssDEgi3GM,51054
|
163
164
|
tests/test_rust_backend.py,sha256=3TLu8dSVEqyLhjHED2DoAEQHTpbBQcr3WI6K2eGZLZw,7861
|
@@ -169,9 +170,9 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
|
|
169
170
|
tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
|
170
171
|
tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
|
171
172
|
tests/simulator/test_worker.py,sha256=QrWWIJ3HDgDLkBPRc2mwYPlOQoXQcj1qRfc0WUfKkFY,3507
|
172
|
-
torchmonarch_nightly-2025.7.
|
173
|
-
torchmonarch_nightly-2025.7.
|
174
|
-
torchmonarch_nightly-2025.7.
|
175
|
-
torchmonarch_nightly-2025.7.
|
176
|
-
torchmonarch_nightly-2025.7.
|
177
|
-
torchmonarch_nightly-2025.7.
|
173
|
+
torchmonarch_nightly-2025.7.30.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
|
174
|
+
torchmonarch_nightly-2025.7.30.dist-info/METADATA,sha256=TLI6C3RGzWoCq2Ual0X4CEz_oUaMFvHdAxIsAI6yxaI,3852
|
175
|
+
torchmonarch_nightly-2025.7.30.dist-info/WHEEL,sha256=OlISbtpDcfagPrLwG7WtpcZbPTUnoKPnwphA_26fNqE,104
|
176
|
+
torchmonarch_nightly-2025.7.30.dist-info/entry_points.txt,sha256=60QVSpYVzkzS4iDOiLp0fsLxVp47X3J2l3v7W-59LMo,117
|
177
|
+
torchmonarch_nightly-2025.7.30.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
|
178
|
+
torchmonarch_nightly-2025.7.30.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
{torchmonarch_nightly-2025.7.29.dist-info → torchmonarch_nightly-2025.7.30.dist-info}/top_level.txt
RENAMED
File without changes
|