mplang-nightly 0.1.dev253__py3-none-any.whl → 0.1.dev255__py3-none-any.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.
@@ -300,12 +300,13 @@ def generate_sparse_noise(n: int, weight: int) -> el.Object:
300
300
 
301
301
  # Generate unique indices using rejection-free Fisher-Yates-like approach
302
302
  # Map random u64 to positions while ensuring uniqueness
303
- positions = jnp.zeros(weight, dtype=jnp.int32)
303
+ # Use int64 to avoid dtype mismatch warning in scatter operations
304
+ positions = jnp.zeros(weight, dtype=jnp.int64)
304
305
 
305
306
  # Build positions array (unrolled for JAX compatibility)
306
307
  for i in range(weight):
307
308
  # Map random value to remaining range [0, n-i)
308
- pos = jnp.int32(idx_entropy[i] % (n - i))
309
+ pos = jnp.int64(idx_entropy[i] % (n - i))
309
310
 
310
311
  # Shift position to avoid already-used indices
311
312
  # Count how many existing positions are <= current pos
@@ -360,6 +360,32 @@ class Interpreter(AbstractInterpreter):
360
360
  self.trace_pid = trace_pid
361
361
  self.store: ObjectStore | None = store
362
362
 
363
+ def shutdown(self) -> None:
364
+ """Shutdown the interpreter and release resources.
365
+
366
+ This method is idempotent and safe to call multiple times.
367
+ It performs the following cleanup:
368
+ 1. Shuts down the internal executor (if any).
369
+ 2. Stops the execution tracer (if any).
370
+ 3. Shuts down any attached dialect states (e.g., stopping drivers).
371
+ """
372
+ # 1. Shutdown Executor
373
+ if self.executor:
374
+ self.executor.shutdown(wait=True)
375
+ self.executor = None
376
+
377
+ # 2. Stop Tracer
378
+ if self.tracer:
379
+ self.tracer.stop()
380
+ # Don't clear self.tracer, as we might want to read stats later
381
+
382
+ # 3. Shutdown Dialect States
383
+ # Iterate over all attached states (e.g., drivers, cluster managers)
384
+ # and shut them down if they support it.
385
+ for state in self._states.values():
386
+ if hasattr(state, "shutdown") and callable(state.shutdown):
387
+ state.shutdown()
388
+
363
389
  # =========================================================================
364
390
  # Dialect State Management
365
391
  # =========================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mplang-nightly
3
- Version: 0.1.dev253
3
+ Version: 0.1.dev255
4
4
  Summary: Multi-Party Programming Language
5
5
  Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
6
6
  License: Apache License
@@ -78,7 +78,7 @@ mplang/v1/utils/func_utils.py,sha256=vCJcZmu0bEbqhOQKdpttV2_MBllIcPSN0b8U4WjNGGo
78
78
  mplang/v1/utils/spu_utils.py,sha256=S3L9RBkBe2AvSuMSQQ12cBY5Y1NPthubvErSX_7nj1A,4158
79
79
  mplang/v1/utils/table_utils.py,sha256=1fDgZLrRf2bvKvA45egT6RtMPgwE1cI2BokMHUU_xv4,5945
80
80
  mplang/v2/__init__.py,sha256=SqVxDiRvA9W49NaXaT70spf6-xSbat1ZfIdI4j8KgFk,13816
81
- mplang/v2/cli.py,sha256=KBKJbgqsxAdrDYXjj3KMWO1zdhHQdQeJF94tOuKbLio,19665
81
+ mplang/v2/cli.py,sha256=QtiTFG418k26opRy4GhVV8fwFqRS11xTLH3xRCIIm6M,19665
82
82
  mplang/v2/cli_guide.md,sha256=kyoCaqkvIJJ1vsvCyBu3qgOuRSb0txu9BDZoy9GU5S0,3617
83
83
  mplang/v2/backends/__init__.py,sha256=H-4-jBEPWBZl6XT7AxBShRINnruF_f_2lB4iaiQoXME,1988
84
84
  mplang/v2/backends/bfv_impl.py,sha256=cQPinze3c2xN4CmIIoXxZoIEhu9ynoGaXbdF95z_aTE,25709
@@ -87,14 +87,15 @@ mplang/v2/backends/field_impl.py,sha256=50sKGOlkUiaTj_IAola86uQeoi-fxV0o7G91BdTC
87
87
  mplang/v2/backends/func_impl.py,sha256=R0662cC0gSSfkjuLyevJ_g4bJDJirY76LTFYqEimCkE,3585
88
88
  mplang/v2/backends/phe_impl.py,sha256=r836e_qBHGrHhfnFail5IaUDzvS7bABjdEQmJmAtBVI,4127
89
89
  mplang/v2/backends/simp_design.md,sha256=CXvfxrvV1TmKlFm8IbKTbcHHwLl6AhwlY_cNqMdff_Y,5250
90
- mplang/v2/backends/spu_impl.py,sha256=pMjdD8_wMs1scSoJqsnZnKRrPbkfcCu-U-hxyz-EN_0,11757
90
+ mplang/v2/backends/spu_impl.py,sha256=gKyueQZQXRQhJ_7q3EQ74ItJntzeFdgTnPtU2mJRqF8,9466
91
+ mplang/v2/backends/spu_state.py,sha256=wj876IvNPhKyWISN6WwKBYoaDQFFJ8jemdJUVeH5IfA,4144
91
92
  mplang/v2/backends/store_impl.py,sha256=RyhADTNsnnNnwsatAMr7eeewXkVXtfNWA1oFiLXg8H0,2222
92
93
  mplang/v2/backends/table_impl.py,sha256=c36gyBCWLQbV3g0hkJeTnMXUqT0nxgu74k2sLondTio,8784
93
94
  mplang/v2/backends/tee_impl.py,sha256=5PzzQ6mibd6-Wyvvt_8DD6G-CzA4VAmqGk6H1Z9risI,6986
94
95
  mplang/v2/backends/tensor_impl.py,sha256=8f9f4-_e-m4JWGZSbXLmSSHcgPykRBc1sAYrA3OIxEg,18906
95
96
  mplang/v2/backends/simp_driver/__init__.py,sha256=ahOPYYvtFVwqxiFxkpSNP8BCTao_MfCXmtt5zsMaJxg,1258
96
97
  mplang/v2/backends/simp_driver/http.py,sha256=nl7ny7f8bzhy1ubNIDXhMgA5P_WA8dhhgFNHvcmfSKk,5548
97
- mplang/v2/backends/simp_driver/mem.py,sha256=K5VR86M3Iy-0rcmvCCNHLO_XR46Z-g8miVjCRlzmzkA,9002
98
+ mplang/v2/backends/simp_driver/mem.py,sha256=nFA-KkYx5fDh6NseI8QOd5FkNErPDq4h_QjrWD7nMrE,9126
98
99
  mplang/v2/backends/simp_driver/ops.py,sha256=UeVC3eaCUwxrkN6OsJyMYj8qMDufMFQI0YogeSbhkjM,4515
99
100
  mplang/v2/backends/simp_driver/state.py,sha256=6tQyQg_PNzHOJkjCoNm51Wvknl3XiJZzpQXuRB4qRtM,1719
100
101
  mplang/v2/backends/simp_driver/values.py,sha256=OQ_7Kt6l7Pcfx5eB6GVbpunS6CG60Lj0AS6H9Wx9sKQ,1515
@@ -118,7 +119,7 @@ mplang/v2/dialects/tee.py,sha256=R_XySt-JNhZJNdjRiUw-nU4BjwBNMtV4sYFMOtvJZzc,115
118
119
  mplang/v2/dialects/tensor.py,sha256=FxPKsiNi2vFb-R2hqRgR7zYYO5LdRu_rdDHfjE3_2Lw,40003
119
120
  mplang/v2/edsl/README.md,sha256=viflvdRojOa6Xk_UMRPqpuPGXcPGmdlv2-XR6LO7B58,7592
120
121
  mplang/v2/edsl/__init__.py,sha256=YqmtrJXD1NLKS-_Ofnxtiv77muokTZnrAiV7dXUZVyo,2607
121
- mplang/v2/edsl/context.py,sha256=jkz0Fs6dMGQ9V68-h5ki-7hdBXJ6s5WqoYVJSctPRds,10089
122
+ mplang/v2/edsl/context.py,sha256=0RgQAt7cbPudt9kyBb7wjZ31HzGMnq81Ah5sgs_qU2U,10093
122
123
  mplang/v2/edsl/graph.py,sha256=VXeE_9Oc9E0qfnwFDYBvFyDL79qvABLs1aFC-lheJ8M,14983
123
124
  mplang/v2/edsl/jit.py,sha256=tofGAqNSUPuEmqy0flaZpNaR1Y425Pk2FdmCKxRPCM8,2069
124
125
  mplang/v2/edsl/object.py,sha256=rijDu4yuG_Sitgfz5gk8-mJ1-3Bgor0QrQU04q9mkgo,1909
@@ -139,6 +140,8 @@ mplang/v2/libs/collective.py,sha256=pfXq9tmFUNKjeHhWMTjtzOi-m2Fn1lLru1G6txZVyic,
139
140
  mplang/v2/libs/device/__init__.py,sha256=mXsSvXrWmlHu6Ch87Vcd85m4L_qdDkbSvJyHyuai2fc,1251
140
141
  mplang/v2/libs/device/api.py,sha256=8i0KP3q_XbOfPYB9fzs7pA6vVY4Ib6lxdoiwAi_RlmU,27838
141
142
  mplang/v2/libs/device/cluster.py,sha256=YUqYZ_IBS6rpV5ejUFP3kTxcTQHSyeDeuaJcsiFY_Js,12508
143
+ mplang/v2/libs/ml/__init__.py,sha256=xTxhC_YwHP32muUEFCEwOjc-3Ml-vmO48NNECU90zm4,787
144
+ mplang/v2/libs/ml/sgb.py,sha256=qoJww01EEbWo9nvwB5w-JZqx9BchcmhSrToypxV7fPg,60297
142
145
  mplang/v2/libs/mpc/__init__.py,sha256=znADXBv0cATTvNN9pVOH8V47O5vmYZnR1Y7tfh1QVjw,1405
143
146
  mplang/v2/libs/mpc/_utils.py,sha256=Xzt5jIQSm2e8_xFC6zrdKL93IqbTDb40apk2JBbEgBI,3215
144
147
  mplang/v2/libs/mpc/analytics/__init__.py,sha256=8_1Sm05nrO2ISat1hNZT6UXHpKQ-SDBby1eeS-wm_fE,1204
@@ -160,15 +163,15 @@ mplang/v2/libs/mpc/psi/rr22.py,sha256=2mN1zbjrBUgaWCsF3Lj8ohtK6gcG95PtBb3EseS-Ns
160
163
  mplang/v2/libs/mpc/psi/unbalanced.py,sha256=hC84TVsgnlJDg6hpUrx8kbUbmFb27T9wrHG0zv3FXLc,7433
161
164
  mplang/v2/libs/mpc/vole/__init__.py,sha256=2dU4X6n73HoK-YCiCl4b36SkLRKR6rofe2xxLxBz6Rc,968
162
165
  mplang/v2/libs/mpc/vole/gilboa.py,sha256=apnKOYR4_dJ2wkzGq7PBlwauA-W5i5MPESdetCWTegU,9951
163
- mplang/v2/libs/mpc/vole/ldpc.py,sha256=FMmK8SNifFr8qTXBSWjFEXvsZvWPyyG5L5OglXJhmas,12712
166
+ mplang/v2/libs/mpc/vole/ldpc.py,sha256=1H_Dz1xdZTN2f3V6lz9NKBaY-How9Qu1GgwN0IJZero,12786
164
167
  mplang/v2/libs/mpc/vole/silver.py,sha256=Qnk3EiA18i6RJl-iDCMHOwNdf0Zvkmxq_57O3Y0HPFw,12236
165
168
  mplang/v2/runtime/__init__.py,sha256=VdUwJ3kDaI46FvGw7iMGwcsjt0HTGmmRmaBwj99xKIw,620
166
169
  mplang/v2/runtime/dialect_state.py,sha256=HxO1i4kSOujS2tQzAF9-WmI3nChSaGgupf2_07dHetY,1277
167
- mplang/v2/runtime/interpreter.py,sha256=vQRcK6RHJVHVjqOOA6QgySFEaEWvlvq0qpXvgk-HiW0,31301
170
+ mplang/v2/runtime/interpreter.py,sha256=UzrM5oepka6H0YKRZncNXhsuwKVm4pliG5J92fFRZMI,32300
168
171
  mplang/v2/runtime/object_store.py,sha256=yT6jtKG2GUEJVmpq3gnQ8mCMvUFYzgBciC5A-J5KRdk,5998
169
172
  mplang/v2/runtime/value.py,sha256=CMOxElJP78v7pjasPhEpbxWbSgB2KsLbpPmzz0mQX0E,4317
170
- mplang_nightly-0.1.dev253.dist-info/METADATA,sha256=6kbK79_gaRWSwlyJhIVZxD-ToGqhWe60IOyt2aKSe2U,16768
171
- mplang_nightly-0.1.dev253.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
172
- mplang_nightly-0.1.dev253.dist-info/entry_points.txt,sha256=mG1oJT-GAjQR834a62_QIWb7litzWPPyVnwFqm-rWuY,55
173
- mplang_nightly-0.1.dev253.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
174
- mplang_nightly-0.1.dev253.dist-info/RECORD,,
173
+ mplang_nightly-0.1.dev255.dist-info/METADATA,sha256=k-_Pe_IksZD0UsPf-oPxMv_FlGNEKKfWwz4BjCVqC00,16768
174
+ mplang_nightly-0.1.dev255.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
175
+ mplang_nightly-0.1.dev255.dist-info/entry_points.txt,sha256=mG1oJT-GAjQR834a62_QIWb7litzWPPyVnwFqm-rWuY,55
176
+ mplang_nightly-0.1.dev255.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
177
+ mplang_nightly-0.1.dev255.dist-info/RECORD,,