torchmonarch-nightly 2025.6.11__cp310-cp310-manylinux2014_x86_64.whl → 2025.6.12__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.
@@ -5,7 +5,6 @@
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
7
  # pyre-strict
8
- import abc
9
8
 
10
9
  from monarch._rust_bindings.monarch_hyperactor.actor import PythonMessage
11
10
 
@@ -29,21 +28,6 @@ from monarch._rust_bindings.monarch_hyperactor.shape import ( # @manual=//monar
29
28
  Shape,
30
29
  )
31
30
 
32
-
33
- class Actor(abc.ABC):
34
- @abc.abstractmethod
35
- async def handle(self, mailbox: Mailbox, message: PythonMessage) -> None: ...
36
-
37
- async def handle_cast(
38
- self,
39
- mailbox: Mailbox,
40
- rank: int,
41
- coordinates: list[tuple[str, int]],
42
- message: PythonMessage,
43
- ) -> None:
44
- await self.handle(mailbox, message)
45
-
46
-
47
31
  __all__ = [
48
32
  "init_proc",
49
33
  "Actor",
monarch/_rust_bindings.so CHANGED
Binary file
monarch/actor_mesh.py CHANGED
@@ -4,6 +4,8 @@
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
+ # pyre-unsafe
8
+
7
9
  import asyncio
8
10
  import collections
9
11
  import contextvars
@@ -20,6 +22,7 @@ from traceback import extract_tb, StackSummary
20
22
  from typing import (
21
23
  Any,
22
24
  AsyncGenerator,
25
+ Awaitable,
23
26
  Callable,
24
27
  cast,
25
28
  Concatenate,
@@ -55,7 +58,7 @@ from monarch._rust_bindings.monarch_hyperactor.shape import Point as HyPoint, Sh
55
58
  from monarch.common.pickle_flatten import flatten, unflatten
56
59
  from monarch.common.shape import MeshTrait, NDSlice
57
60
 
58
- logger = logging.getLogger(__name__)
61
+ logger: logging.Logger = logging.getLogger(__name__)
59
62
 
60
63
  Allocator = monarch.ProcessAllocator | monarch.LocalAllocator
61
64
 
@@ -92,7 +95,7 @@ _context: contextvars.ContextVar[MonarchContext] = contextvars.ContextVar(
92
95
 
93
96
  # this was implemented in python 3.12 as an argument to task
94
97
  # but I have to backport to 3.10/3.11.
95
- def create_eager_task(coro: Coroutine[Any, None, Any]) -> asyncio.Future:
98
+ def create_eager_task(coro: Awaitable[None]) -> asyncio.Future:
96
99
  iter = coro.__await__()
97
100
  try:
98
101
  first_yield = next(iter)
@@ -235,7 +238,7 @@ class Endpoint(Generic[P, R]):
235
238
  self,
236
239
  actor_mesh_ref: _ActorMeshRefImpl,
237
240
  name: str,
238
- impl: Callable[Concatenate[Any, P], Coroutine[Any, Any, R]],
241
+ impl: Callable[Concatenate[Any, P], Awaitable[R]],
239
242
  mailbox: Mailbox,
240
243
  ) -> None:
241
244
  self._actor_mesh = actor_mesh_ref
@@ -267,14 +270,16 @@ class Endpoint(Generic[P, R]):
267
270
  return self.choose(*args, **kwargs)
268
271
 
269
272
  def call(self, *args: P.args, **kwargs: P.kwargs) -> "Future[ValueMesh[R]]":
273
+ p: PortId
274
+ r: PortReceiver[R]
270
275
  p, r = port(self)
271
276
  # pyre-ignore
272
277
  send(self, args, kwargs, port=p, rank_in_response=True)
273
278
 
274
- async def process():
275
- results = [None] * len(self._actor_mesh)
279
+ async def process() -> ValueMesh[R]:
280
+ results: List[R] = [None] * len(self._actor_mesh) # pyre-fixme[9]
276
281
  for _ in range(len(self._actor_mesh)):
277
- rank, value = await r.recv()
282
+ rank, value = await r.recv() # pyre-fixme[23]
278
283
  results[rank] = value
279
284
  call_shape = Shape(
280
285
  self._actor_mesh._shape.labels,
@@ -312,15 +317,15 @@ class Endpoint(Generic[P, R]):
312
317
  class Accumulator(Generic[P, R, A]):
313
318
  def __init__(
314
319
  self, endpoint: Endpoint[P, R], identity: A, combine: Callable[[A, R], A]
315
- ):
316
- self._endpoint = endpoint
317
- self._identity = identity
318
- self._combine = combine
320
+ ) -> None:
321
+ self._endpoint: Endpoint[P, R] = endpoint
322
+ self._identity: A = identity
323
+ self._combine: Callable[[A, R], A] = combine
319
324
 
320
325
  def accumulate(self, *args: P.args, **kwargs: P.kwargs) -> "Future[A]":
321
- gen = self._endpoint.stream(*args, **kwargs)
326
+ gen: AsyncGenerator[R, R] = self._endpoint.stream(*args, **kwargs)
322
327
 
323
- async def impl():
328
+ async def impl() -> A:
324
329
  value = self._identity
325
330
  async for x in gen:
326
331
  value = self._combine(value, x)
@@ -337,7 +342,7 @@ class ValueMesh(MeshTrait, Generic[R]):
337
342
  def _new_with_shape(self, shape: Shape) -> "ValueMesh[R]":
338
343
  return ValueMesh(shape, self._values)
339
344
 
340
- def item(self, **kwargs):
345
+ def item(self, **kwargs) -> R:
341
346
  coordinates = [kwargs.pop(label) for label in self._labels]
342
347
  if kwargs:
343
348
  raise KeyError(f"item has extra dimensions: {list(kwargs.keys())}")
@@ -348,7 +353,7 @@ class ValueMesh(MeshTrait, Generic[R]):
348
353
  for rank in self._shape.ranks():
349
354
  yield Point(rank, self._shape), self._values[rank]
350
355
 
351
- def __len__(self):
356
+ def __len__(self) -> int:
352
357
  return len(self._shape)
353
358
 
354
359
  @property
@@ -381,7 +386,7 @@ def send(
381
386
 
382
387
 
383
388
  class EndpointProperty(Generic[P, R]):
384
- def __init__(self, method: Callable[Concatenate[Any, P], Coroutine[Any, Any, R]]):
389
+ def __init__(self, method: Callable[Concatenate[Any, P], Awaitable[R]]) -> None:
385
390
  self._method = method
386
391
 
387
392
  def __get__(self, instance, owner) -> Endpoint[P, R]:
@@ -392,7 +397,7 @@ class EndpointProperty(Generic[P, R]):
392
397
 
393
398
 
394
399
  def endpoint(
395
- method: Callable[Concatenate[Any, P], Coroutine[Any, Any, R]],
400
+ method: Callable[Concatenate[Any, P], Awaitable[R]],
396
401
  ) -> EndpointProperty[P, R]:
397
402
  return EndpointProperty(method)
398
403
 
@@ -415,7 +420,9 @@ class Port:
415
420
  # advance lower-level API for sending messages. This is intentially
416
421
  # not part of the Endpoint API because they way it accepts arguments
417
422
  # and handles concerns is different.
418
- def port(endpoint: Endpoint[P, R], once=False) -> Tuple["PortId", "PortReceiver[R]"]:
423
+ def port(
424
+ endpoint: Endpoint[P, R], once: bool = False
425
+ ) -> Tuple["PortId", "PortReceiver[R]"]:
419
426
  handle, receiver = (
420
427
  endpoint._mailbox.open_once_port() if once else endpoint._mailbox.open_port()
421
428
  )
@@ -428,9 +435,9 @@ class PortReceiver(Generic[R]):
428
435
  self,
429
436
  mailbox: Mailbox,
430
437
  receiver: HyPortReceiver | OncePortReceiver,
431
- ):
432
- self._mailbox = mailbox
433
- self._receiver = receiver
438
+ ) -> None:
439
+ self._mailbox: Mailbox = mailbox
440
+ self._receiver: HyPortReceiver | OncePortReceiver = receiver
434
441
 
435
442
  async def _recv(self) -> R:
436
443
  return self._process(await self._receiver.recv())
@@ -438,7 +445,7 @@ class PortReceiver(Generic[R]):
438
445
  def _blocking_recv(self) -> R:
439
446
  return self._process(self._receiver.blocking_recv())
440
447
 
441
- def _process(self, msg: PythonMessage):
448
+ def _process(self, msg: PythonMessage) -> R:
442
449
  # TODO: Try to do something more structured than a cast here
443
450
  payload = cast(R, _unpickle(msg.message, self._mailbox))
444
451
  if msg.method == "result":
@@ -485,7 +492,9 @@ class _Actor:
485
492
  else None
486
493
  )
487
494
  try:
488
- ctx = MonarchContext(mailbox, mailbox.actor_id.proc_id, Point(rank, shape))
495
+ ctx: MonarchContext = MonarchContext(
496
+ mailbox, mailbox.actor_id.proc_id, Point(rank, shape)
497
+ )
489
498
  _context.set(ctx)
490
499
 
491
500
  args, kwargs = _unpickle(message.message, mailbox)
@@ -532,14 +541,19 @@ class _Actor:
532
541
  async def run_async(
533
542
  self,
534
543
  ctx: MonarchContext,
535
- coroutine: Coroutine[Any, None, Any],
544
+ coroutine: Awaitable[None],
536
545
  ) -> None:
537
546
  _context.set(ctx)
538
547
  if self.complete_task is None:
539
548
  self.complete_task = asyncio.create_task(self._complete())
540
549
  await self.active_requests.put(create_eager_task(coroutine))
541
550
 
542
- async def run_task(self, port, coroutine, panic_flag):
551
+ async def run_task(
552
+ self,
553
+ port: Port | None,
554
+ coroutine: Awaitable[Any],
555
+ panic_flag: PanicFlag,
556
+ ) -> None:
543
557
  try:
544
558
  result = await coroutine
545
559
  if port is not None:
@@ -615,10 +629,10 @@ class ActorMeshRef(MeshTrait):
615
629
  def __init__(
616
630
  self, Class: Type[T], actor_mesh_ref: _ActorMeshRefImpl, mailbox: Mailbox
617
631
  ) -> None:
618
- self.__name__ = Class.__name__
619
- self._class = Class
620
- self._actor_mesh_ref = actor_mesh_ref
621
- self._mailbox = mailbox
632
+ self.__name__: str = Class.__name__
633
+ self._class: Type[T] = Class
634
+ self._actor_mesh_ref: _ActorMeshRefImpl = actor_mesh_ref
635
+ self._mailbox: Mailbox = mailbox
622
636
  for attr_name in dir(self._class):
623
637
  attr_value = getattr(self._class, attr_name, None)
624
638
  if isinstance(attr_value, EndpointProperty):
@@ -659,7 +673,11 @@ class ActorMeshRef(MeshTrait):
659
673
  f"'{self.__class__.__name__}' object has no attribute '{name}'"
660
674
  )
661
675
 
662
- def _create(self, args: Iterable[Any], kwargs: Dict[str, Any]) -> None:
676
+ def _create(
677
+ self,
678
+ args: Iterable[Any],
679
+ kwargs: Dict[str, Any],
680
+ ) -> None:
663
681
  async def null_func(*_args: Iterable[Any], **_kwargs: Dict[str, Any]) -> None:
664
682
  return None
665
683
 
monarch/common/client.py CHANGED
@@ -302,7 +302,7 @@ class Client:
302
302
  self.last_processed_seq = max(self.last_processed_seq, seq)
303
303
 
304
304
  if error is not None:
305
- logging.error("Received error for seq %s: %s", seq, error)
305
+ logging.info("Received error for seq %s: %s", seq, error)
306
306
  # We should not have set result if we have an error.
307
307
  assert result is None
308
308
  if not isinstance(error, RemoteException):
@@ -332,9 +332,7 @@ class Client:
332
332
  elif error is not None:
333
333
  # errors get reported as results even if they
334
334
  # do not have futures attached.
335
- logger.warning(
336
- f"Error encountered for this instruction {seq}. Proceeding forward because error is unused and unhandled. Error details:\n{error}."
337
- )
335
+ pass
338
336
 
339
337
  # We can safely delete the seq as tracebacks have been saved to the remote failure itself.
340
338
  del self.pending_results[seq]
monarch/common/stream.py CHANGED
@@ -82,6 +82,9 @@ class StreamRef(Referenceable):
82
82
  messages.CreateStream(self, self.default),
83
83
  )
84
84
 
85
+ def __repr__(self):
86
+ return f"<StreamRef {repr(self.name)} {self.ref}>"
87
+
85
88
  def delete_ref(self, ref):
86
89
  client = self.client()
87
90
  if client is not None and not client._shutdown:
@@ -158,7 +158,6 @@ def _worker_response_to_result(result: client.WorkerResponse) -> MessageResult:
158
158
  traceback.FrameSummary("<unknown>", None, frame)
159
159
  for frame in exc.backtrace.split("\\n")
160
160
  ]
161
- logger.error(f"Worker {exc.actor_id} failed")
162
161
  return MessageResult(
163
162
  seq=result.seq,
164
163
  result=None,
@@ -169,7 +168,7 @@ def _worker_response_to_result(result: client.WorkerResponse) -> MessageResult:
169
168
  controller_frames=None,
170
169
  worker_frames=worker_frames,
171
170
  source_actor_id=exc.actor_id,
172
- message=f"Worker {exc.actor_id} failed",
171
+ message=f"Remote function in {exc.actor_id} errored.",
173
172
  ),
174
173
  )
175
174
  elif isinstance(exc, client.Failure):
Binary file
monarch/proc_mesh.py CHANGED
@@ -4,9 +4,11 @@
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
+ # pyre-strict
8
+
7
9
  import sys
8
10
 
9
- from typing import Any, cast, Optional, Type, TypeVar
11
+ from typing import Any, cast, List, Optional, Type, TypeVar
10
12
 
11
13
  import monarch
12
14
  from monarch import ActorFuture as Future
@@ -18,7 +20,7 @@ from monarch._rust_bindings.hyperactor_extension.alloc import ( # @manual=//mon
18
20
  )
19
21
  from monarch._rust_bindings.monarch_hyperactor.mailbox import Mailbox
20
22
  from monarch._rust_bindings.monarch_hyperactor.proc_mesh import ProcMesh as HyProcMesh
21
- from monarch._rust_bindings.monarch_hyperactor.shape import Shape
23
+ from monarch._rust_bindings.monarch_hyperactor.shape import Shape, Slice
22
24
  from monarch.actor_mesh import _Actor, _ActorMeshRefImpl, Actor, ActorMeshRef
23
25
 
24
26
  from monarch.common._device_utils import _local_device_count
@@ -46,14 +48,16 @@ class ProcMesh(MeshTrait):
46
48
  def __init__(self, hy_proc_mesh: HyProcMesh) -> None:
47
49
  self._proc_mesh = hy_proc_mesh
48
50
  self._mailbox: Mailbox = self._proc_mesh.client
49
- self._rdma_manager = self._spawn_blocking("rdma_manager", RDMAManager)
51
+ self._rdma_manager: RDMAManager = self._spawn_blocking(
52
+ "rdma_manager", RDMAManager
53
+ )
50
54
 
51
55
  @property
52
- def _ndslice(self):
56
+ def _ndslice(self) -> Slice:
53
57
  return self._proc_mesh.shape.ndslice
54
58
 
55
59
  @property
56
- def _labels(self):
60
+ def _labels(self) -> List[str]:
57
61
  return self._proc_mesh.shape.labels
58
62
 
59
63
  def _new_with_shape(self, shape: Shape) -> "ProcMesh":
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: torchmonarch-nightly
3
- Version: 2025.6.11
3
+ Version: 2025.6.12
4
4
  Summary: Monarch: Single controller library
5
5
  Author: Meta
6
6
  Author-email: oncall+monarch@xmail.facebook.com
@@ -1,7 +1,7 @@
1
1
  monarch/__init__.py,sha256=iUvWHc0-7Q2tovRoRxOIiA3TsefMXCbWl-jEfQ2djew,6897
2
- monarch/_rust_bindings.so,sha256=g2tlum6iqfdR4KRkVhp_BwUmlz0tYUSITNVaJjSNitE,40645720
2
+ monarch/_rust_bindings.so,sha256=VPU8MhCnz10umRwSqv99QvwFkr2q0N0DiOTpZ37Ecl0,40645344
3
3
  monarch/_testing.py,sha256=MN8DK1e-wzV0-R_nFW1b_7-O5oKfWvZ12BMGD4Z7PQk,6755
4
- monarch/actor_mesh.py,sha256=4I8xp_XIM6KZJY_jXVjJ8tPW2l1J4a6ZhrknU7zKbAk,23947
4
+ monarch/actor_mesh.py,sha256=ovi5RBxobGEcg7zKkzhRc83n82KOD6ermhuloHKbuFs,24420
5
5
  monarch/allocator.py,sha256=ylvYTf31o-PT385cYJPhi17uNbC4yl_RAraqD0fVe4g,4112
6
6
  monarch/bootstrap_main.py,sha256=EYaTMA1lxy2213L_04drTKlJvZQjzNdD3jeUHiqSBJc,2578
7
7
  monarch/cached_remote_function.py,sha256=kYdB6r4OHx_T_uX4q3tCNcp1t2DJwF8tPTIahUiT2pU,8785
@@ -9,12 +9,12 @@ monarch/fetch.py,sha256=61jxo7sx4QNUTkc0_rF5NaJROen4tKbAaiIjrXWLOvg,1705
9
9
  monarch/future.py,sha256=lcdFEe7m1shYPPuvZ1RkS6JUIChEKGBWe3v7x_nu4Hg,731
10
10
  monarch/gradient_generator.py,sha256=Rl3dmXGceTdCc1mYBg2JciR88ywGPnW7TVkL86KwqEA,6366
11
11
  monarch/memory.py,sha256=ol86dBhFAJqg78iF25-BuK0wuwj1onR8FIioZ_B0gjw,1377
12
- monarch/mesh_controller.py,sha256=A3G8Z5S0w3mjCVI2r6YGM6K3BUs3ZHU8PFo6kCaYTU4,8615
13
- monarch/monarch_controller,sha256=41B7zLv7M7_CSmChN5bfvVrygi2VeBhMDcNQXlnbVZU,20394376
12
+ monarch/mesh_controller.py,sha256=Rr4VNUNN0pJdThbPmbCoaPWid4QpTNHya9xYpmjTkW0,8575
13
+ monarch/monarch_controller,sha256=MECcriPRnSdI_NpAG6y-GiK2-DqnDsLBfyOHVdqewRU,20397992
14
14
  monarch/notebook.py,sha256=zu9MKDFKf1-rCM2TqFSRJjMBeiWuKcJSyUFLvoZRQzs,25949
15
15
  monarch/opaque_module.py,sha256=oajOu_WD1hD4hxE8HDdO-tvWY7KDHWd7VaAhJEa5L2I,10446
16
16
  monarch/opaque_object.py,sha256=IVpll4pyuKZMo_EnPh4s0qnx8RlAcJrJ1yoLX6E75wQ,2782
17
- monarch/proc_mesh.py,sha256=pVN0BLnjGaty6-UGn1U81rNdmfiDvD4gO1c4bISHtqs,6807
17
+ monarch/proc_mesh.py,sha256=xoaReM9Ab9TWkesxedWSyyk4TMD0HLV88dQ8CQcbqTI,6892
18
18
  monarch/profiler.py,sha256=TQ9fnVM8H7smBWtYdB_6Irtzz8DBOmcp7U1T3wlUmco,4911
19
19
  monarch/python_local_mesh.py,sha256=YsureIzR9uGlNVrKd4vRghxOXBeYabkt9lICRErfRAI,3536
20
20
  monarch/random.py,sha256=f9QR7Esu4Vxqxs-KCf5QYyVqlWvXJ3-UtG90L_h4j40,1527
@@ -27,7 +27,7 @@ monarch/tensor_worker_main.py,sha256=Nbarl2sJKIddLeaRFsaUnqOerLHjzggUr9SqCr2_GYI
27
27
  monarch/tensorboard.py,sha256=MnLgH5lbqeUJauEuirEgR6L_qYl2NGdtwZOWIAuOZao,2587
28
28
  monarch/world_mesh.py,sha256=GqZpFoVNJPxYa70rLYgv0vu8Vg1nXqx_GYERRb1E9Pc,975
29
29
  monarch/_monarch/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
30
- monarch/_monarch/hyperactor/__init__.py,sha256=H-9w80ejck1lBVfpqOLikT-mPLMLpi7ZZfqrmprMxL0,1748
30
+ monarch/_monarch/hyperactor/__init__.py,sha256=JLnB2_-bKHLqAcZwehKvPkbwbxF-gCq5LODJiWGU_b8,1384
31
31
  monarch/_monarch/selection/__init__.py,sha256=47arOElvlK0uYcTNrd__1BwXSfsMosnVw4_tgu2hA-I,381
32
32
  monarch/_monarch/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  monarch/_monarch/worker/debugger.py,sha256=JJZwRPTgQO2emz-hrMelkOSxJFIR3dV4ZA6e7ftYUKA,3614
@@ -43,7 +43,7 @@ monarch/common/_device_utils.py,sha256=gBpl23wMjppVAEzzj8U9HyX-B7Bs2_3ftiMAkzUS4
43
43
  monarch/common/_tensor_to_table.py,sha256=yRjCNwvtl188Z1Dwkx3ZU-Bh2mwYnQ0Lnue2RAztwvc,5753
44
44
  monarch/common/base_tensor.py,sha256=ujRzR6lWaeCdPv2JX0vCR-VsCWn-3SHaJIkZH1Sw9FQ,1159
45
45
  monarch/common/borrows.py,sha256=7KR62xoUat1T6FyADsdHsxVAVIJDvfJWUnPO-xx277U,5307
46
- monarch/common/client.py,sha256=wOAnoaLmabrcv7mK_z_HVnk_ivGe5igPy3iWZI4LVZc,24517
46
+ monarch/common/client.py,sha256=BaBhOzQaNsqTa-BGy7_IknQxpnpK0j4C5QsNyFHZHW4,24343
47
47
  monarch/common/constants.py,sha256=ohvsVYMpfeWopv3KXDAeHWDFLukwc-OY37VRxpKNBE8,300
48
48
  monarch/common/context_manager.py,sha256=GOeyaFbyCqvQmkJ0oI7q6IxRd8_0mVyYKZRccI8iaug,1067
49
49
  monarch/common/controller_api.py,sha256=djGkK5aSd-V6pBkr3uBCXbfJv3OKf2o2VbBXJgFF2WI,3202
@@ -65,7 +65,7 @@ monarch/common/reference.py,sha256=O26lkzEeVwj0S1xEy-OLqdHVnACmmlbQCUmXRrW4n1Q,9
65
65
  monarch/common/remote.py,sha256=qZWXkShX20l07TseQSpVECh2yXZaVKYUvQXkeEM-zvY,9220
66
66
  monarch/common/selection.py,sha256=lpWFbZs3ArYy29e-53eoAVAjQFksf1RvZz9NvM0CUW4,308
67
67
  monarch/common/shape.py,sha256=k6-0S0U19PmrfP62SMb9Ihx6_I4QQFUGErloZn8GcZ0,8144
68
- monarch/common/stream.py,sha256=J9UCqhSXSbKYFGtbKaqAq1Vgmg6DJcLzsXXm-tsBQ-w,3499
68
+ monarch/common/stream.py,sha256=_ejoxafHtdD10lLzznRCXKwrkZ_ZH9k_VTgiA5yfBrI,3583
69
69
  monarch/common/tensor.py,sha256=mSXiHoD0Up4m2RLdQcsbesaz2N4QCFS34UNNX3Dbldk,28842
70
70
  monarch/common/tensor_factory.py,sha256=qm8NZx-5ezMAFjNLiXQvb66okm5XgdboB_GRarGOdN0,801
71
71
  monarch/common/tree.py,sha256=1DG3siiE7ixBV6v5cwN8RT_17aJhYZTE-L3i7wZe2_c,2282
@@ -132,7 +132,7 @@ tests/error_test_binary.py,sha256=64H-ucdkQ2i7GD8sidStl227cOy7gyeqvO4kTm1y7Ic,48
132
132
  tests/sleep_binary.py,sha256=XfLYaAfwm9xgzM-svs8fhAeFhwYIg6SyVEnx4e6wbUw,1009
133
133
  tests/test_actor_error.py,sha256=z3Sf4lteUggTryPLOhRKJ55v0MwVK3a7QN7-U2U9iJg,7484
134
134
  tests/test_alloc.py,sha256=D6DdQbtOZEvvnnc7LV-WyWFMk0Xb77eblH6Oz90zJTA,745
135
- tests/test_allocator.py,sha256=dqQbQyOjOX3JgnHIPT0iawT0wMeFztbLCYjK2tl8GcI,8149
135
+ tests/test_allocator.py,sha256=P11sQ95ADjzC_-CfPs3CEP80nP8sn7wW8vVPsmpSVoM,8164
136
136
  tests/test_coalescing.py,sha256=-KtAWzTaeXbyzltplfojavx0iFeeZnvej-tFTlu2p5k,15616
137
137
  tests/test_controller.py,sha256=yxuVp2DG3TDKJlwuE3cFm9dbWMlbrYtG1uHfvVWRYbw,30935
138
138
  tests/test_device_mesh.py,sha256=DrbezYOM0thfP9MgLXb5-F0VoLOmSz5GR0GwjR_3bE4,5290
@@ -151,9 +151,9 @@ tests/simulator/test_profiling.py,sha256=TGYCfzTLdkpIwnOuO6KApprmrgPIRQe60KRX3wk
151
151
  tests/simulator/test_simulator.py,sha256=LO8lA0ssY-OGEBL5ipEu74f97Y765TEwfUOv-DtIptM,14568
152
152
  tests/simulator/test_task.py,sha256=ipqBDuDAysuo1xOB9S5psaFvwe6VATD43IovCTSs0t4,2327
153
153
  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,,
154
+ torchmonarch_nightly-2025.6.12.dist-info/licenses/LICENSE,sha256=e0Eotbf_rHOYPuEUlppIbvwy4SN98CZnl_hqwvbDA4Q,1530
155
+ torchmonarch_nightly-2025.6.12.dist-info/METADATA,sha256=mBsDu66W3vkM2SdaxX7hw8_B6kl_XgQZT7nQKZhVkMk,2772
156
+ torchmonarch_nightly-2025.6.12.dist-info/WHEEL,sha256=_wZSFk0d90K9wOBp8Q-UGxshyiJ987JoPiyUBNC6VLk,104
157
+ torchmonarch_nightly-2025.6.12.dist-info/entry_points.txt,sha256=sqfQ16oZqjEvttUI-uj9BBXIIE6jt05bYFSmy-2hyXI,106
158
+ torchmonarch_nightly-2025.6.12.dist-info/top_level.txt,sha256=E-ZssZzyM17glpVrh-S9--qJ-w9p2EjuYOuNw9tQ4Eg,33
159
+ torchmonarch_nightly-2025.6.12.dist-info/RECORD,,