mplang-nightly 0.1.dev332__tar.gz → 0.1.dev334__tar.gz
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.
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/PKG-INFO +1 -1
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/ops.py +4 -4
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/ops.py +13 -4
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/spu_state.py +99 -5
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/runtime/interpreter.py +3 -1
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_simp_integration.py +44 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/.gitignore +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/LICENSE +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/README.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/examples/.gitkeep +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/hatch_build.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/channel.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/field_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/func_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/phe_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_design.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/http.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/mem.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/state.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/values.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/base.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/collective_algorithms.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/collectives.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/comm_context.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/http.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/infra.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/mem.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/request.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/state.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/spu_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/store_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/table_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/tee_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/util.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/cli.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/cli_guide.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/_jax_utils.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/bfv.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/crypto.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/dtypes.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/field.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/func.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/phe.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/simp.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/spu.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/store.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/table.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/tee.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/dialects/tensor.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/README.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/context.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/graph.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/object.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/primitive.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/printer.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/program.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/registry.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/serde.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/tracer.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/edsl/typing.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/extend/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/extend/arrow/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/extend/arrow/compute.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/extend/arrow/util.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/extend/arrow/vector.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/Makefile +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/gf128.cpp +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/ldpc.cpp +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/okvs.cpp +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/okvs_opt.cpp +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/kernels/py_kernels.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/collective.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/device/api.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/device/cluster.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/ml/sgb.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/_utils.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/aggregation.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/groupby.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/groupby.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/permutation.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/common/constants.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/ot/base.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/ot/extension.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/ot/silent.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/cuckoo.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/okvs.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/oprf.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/rr22.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/psi/unbalanced.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/vole/gilboa.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/vole/ldpc.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/vole/silver.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/py.typed +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/runtime/dialect_state.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/runtime/object_store.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/runtime/value.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/tool/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/tool/program.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/utils/func_utils.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/utils/logging.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/pyproject.toml +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_driver/test_http.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_async_exec.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_base.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_collectives.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_comm_context.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_http.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_http_communicator.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_mem.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_request_isolation.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_shuffle_exec_id_key.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_channel.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_okvs_binding.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_simp_object_store.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_spu_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_table_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_tee_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_util.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_verify_clean.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/conftest.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_bfv.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_compile_context.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_dtypes.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_field.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_func.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_okvs.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_okvs_bench.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_phe.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_simp.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_simp_comm.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_spu.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_store.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_table.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_table_row_dimension.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_tee.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/dialects/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_compiled_program_artifact.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_context.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_graph.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_primitive_multi_output.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_printer.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_serde.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_typing.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/edsl/test_typing_graph_serde.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/extend/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/extend/test_arrow.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/conftest.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/test_device_api_errors.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/test_device_dialects.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/test_device_layouts.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/device/test_device_tee.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/ml/test_sgb.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/ml/test_sgb_bench.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/analytics/test_aggregation.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/analytics/test_groupby.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/analytics/test_permutation.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/ot/test_ot.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/ot/test_ot_extension.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/ot/test_silent_ot.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/test_okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/test_oprf.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/test_psi.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/test_psi_bench.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/test_rr22.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/test_field_gf128.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/test_utils.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/test_gilboa_manual.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/test_ldpc.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/test_silver_vole.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/test_vole.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/test_vole_bench.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/mpc/vole/verify_vole_logic.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/test_collective.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/libs/test_simple_guide.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/runtime/test_interpreter_async.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/runtime/test_object_store.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/runtime/test_object_store_fs.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/runtime/test_value_gc.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/test_fetch_semantics.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/test_pytree_io.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/utils/tensor_patch.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/utils/test_func_utils.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/utils/test_logging.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/04_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/05_run_sql.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/06_pipeline.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/07_stax_nn.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/08_logging.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/MIGRATION.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/README.md +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/__init__.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/data/alice.csv +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/data/bob.csv +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/data/prepare_vertical_iris.py +0 -0
- {mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tutorials/run.sh +0 -0
|
@@ -45,8 +45,8 @@ def _wrap_op_as_graph(op: Operation) -> Graph:
|
|
|
45
45
|
# Create graph inputs
|
|
46
46
|
graph_inputs = [g.add_input(f"in_{i}", any_type) for i in range(len(op.inputs))]
|
|
47
47
|
|
|
48
|
-
# Determine output types
|
|
49
|
-
output_types = [out.type for out in op.outputs]
|
|
48
|
+
# Determine output types (faithfully mirror the original op)
|
|
49
|
+
output_types = [out.type for out in op.outputs]
|
|
50
50
|
|
|
51
51
|
# Add the operation (this handles outputs and value registration)
|
|
52
52
|
g.add_op(
|
|
@@ -77,7 +77,7 @@ def _collect_to_hostvars(results: list[Any], num_outputs: int, world_size: int)
|
|
|
77
77
|
Single DriverVar if num_outputs == 1, else list of DriverVars
|
|
78
78
|
"""
|
|
79
79
|
if num_outputs == 0:
|
|
80
|
-
return
|
|
80
|
+
return []
|
|
81
81
|
|
|
82
82
|
# Transpose [worker][output] -> [output][worker]
|
|
83
83
|
# results[worker_idx] is a list of URIs for that worker's outputs
|
|
@@ -117,7 +117,7 @@ def _generic_simp_dispatch(interpreter: Any, op: Operation, *args: Any) -> Any:
|
|
|
117
117
|
results = driver.collect(futures)
|
|
118
118
|
|
|
119
119
|
# 4. Assemble into DriverVar(s)
|
|
120
|
-
num_outputs = len(op.outputs)
|
|
120
|
+
num_outputs = len(op.outputs)
|
|
121
121
|
return _collect_to_hostvars(results, num_outputs, world_size)
|
|
122
122
|
|
|
123
123
|
|
|
@@ -53,13 +53,19 @@ def _pcall_static_worker_impl(
|
|
|
53
53
|
|
|
54
54
|
try:
|
|
55
55
|
result = interpreter.evaluate_graph(fn_graph, list(args))
|
|
56
|
-
#
|
|
57
|
-
|
|
56
|
+
# Use inner graph's actual output count for safety
|
|
57
|
+
n_out = len(fn_graph.outputs)
|
|
58
|
+
if n_out == 0:
|
|
59
|
+
return []
|
|
60
|
+
return result[0] if n_out == 1 else result
|
|
58
61
|
finally:
|
|
59
62
|
worker.current_parties = prev_parties
|
|
60
63
|
else:
|
|
61
64
|
# No data for this rank
|
|
62
|
-
|
|
65
|
+
n_out = len(op.outputs)
|
|
66
|
+
if n_out == 0:
|
|
67
|
+
return []
|
|
68
|
+
return None if n_out == 1 else [None] * n_out
|
|
63
69
|
|
|
64
70
|
|
|
65
71
|
def _pcall_dynamic_worker_impl(
|
|
@@ -68,7 +74,10 @@ def _pcall_dynamic_worker_impl(
|
|
|
68
74
|
"""Worker implementation of pcall_dynamic."""
|
|
69
75
|
fn_graph = op.regions[0]
|
|
70
76
|
result = interpreter.evaluate_graph(fn_graph, list(args))
|
|
71
|
-
|
|
77
|
+
n_out = len(fn_graph.outputs)
|
|
78
|
+
if n_out == 0:
|
|
79
|
+
return []
|
|
80
|
+
return result[0] if n_out == 1 else result
|
|
72
81
|
|
|
73
82
|
|
|
74
83
|
def _shuffle_static_worker_impl(
|
|
@@ -20,6 +20,9 @@ multiple executions while binding to the Interpreter's lifecycle.
|
|
|
20
20
|
|
|
21
21
|
from __future__ import annotations
|
|
22
22
|
|
|
23
|
+
import logging
|
|
24
|
+
import os
|
|
25
|
+
from dataclasses import dataclass, field
|
|
23
26
|
from typing import TYPE_CHECKING, Any
|
|
24
27
|
|
|
25
28
|
import spu.api as spu_api
|
|
@@ -31,6 +34,64 @@ if TYPE_CHECKING:
|
|
|
31
34
|
from mplang.backends.simp_worker.infra import WorkerInfra
|
|
32
35
|
from mplang.dialects import spu
|
|
33
36
|
|
|
37
|
+
logger = logging.getLogger(__name__)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _opt_int_env(name: str) -> int | None:
|
|
41
|
+
"""Read an optional int env var; return None when unset/empty."""
|
|
42
|
+
val = os.getenv(name)
|
|
43
|
+
return int(val) if val else None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass(frozen=True)
|
|
47
|
+
class BrpcLinkConfig:
|
|
48
|
+
"""Tunables for the brpc-backed SPU link.
|
|
49
|
+
|
|
50
|
+
Defaults come from environment variables so deployments can switch
|
|
51
|
+
protocol/timeouts without code changes; explicit constructor args
|
|
52
|
+
still win for tests and programmatic overrides.
|
|
53
|
+
|
|
54
|
+
Set ``protocol`` to ``"http"`` (HTTP/1.1) or ``"h2"`` (HTTP/2) when
|
|
55
|
+
traffic must traverse an L7 gateway that does not understand the
|
|
56
|
+
default ``baidu_std`` binary protocol. HTTP/1.1 requires
|
|
57
|
+
``connection_type="pooled"`` to avoid head-of-line blocking.
|
|
58
|
+
|
|
59
|
+
``http_timeout_ms`` defaults to ``None`` (use brpc's own default) —
|
|
60
|
+
long-running MPC jobs traversing a gateway with idle timeout should
|
|
61
|
+
set this explicitly to cover the longest single RPC.
|
|
62
|
+
|
|
63
|
+
Frozen so instances are hashable and safe to embed in cache keys.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
protocol: str = field(
|
|
67
|
+
default_factory=lambda: os.getenv("MPLANG_BRPC_PROTOCOL") or "http"
|
|
68
|
+
)
|
|
69
|
+
connection_type: str = field(
|
|
70
|
+
default_factory=lambda: os.getenv("MPLANG_BRPC_CONN_TYPE") or "pooled"
|
|
71
|
+
)
|
|
72
|
+
recv_timeout_ms: int = field(
|
|
73
|
+
default_factory=lambda: int(os.getenv("MPLANG_BRPC_RECV_TIMEOUT_MS") or 100000)
|
|
74
|
+
)
|
|
75
|
+
http_max_payload_size: int = field(
|
|
76
|
+
default_factory=lambda: int(
|
|
77
|
+
os.getenv("MPLANG_BRPC_HTTP_MAX_PAYLOAD") or 32 * 1024 * 1024
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
# Per-RPC HTTP timeout. None = inherit brpc default. Set when going
|
|
81
|
+
# through a gateway with its own idle/request timeout.
|
|
82
|
+
http_timeout_ms: int | None = field(
|
|
83
|
+
default_factory=lambda: _opt_int_env("MPLANG_BRPC_HTTP_TIMEOUT_MS")
|
|
84
|
+
)
|
|
85
|
+
# Initial connect retry — tolerates peers that come up later.
|
|
86
|
+
connect_retry_times: int = field(
|
|
87
|
+
default_factory=lambda: int(os.getenv("MPLANG_BRPC_CONNECT_RETRY_TIMES") or 60)
|
|
88
|
+
)
|
|
89
|
+
connect_retry_interval_ms: int = field(
|
|
90
|
+
default_factory=lambda: int(
|
|
91
|
+
os.getenv("MPLANG_BRPC_CONNECT_RETRY_INTERVAL_MS") or 1000
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
|
|
34
95
|
|
|
35
96
|
class SPUState(DialectState):
|
|
36
97
|
"""SPU Runtime cache as dialect state.
|
|
@@ -48,13 +109,22 @@ class SPUState(DialectState):
|
|
|
48
109
|
|
|
49
110
|
dialect_name: str = "spu"
|
|
50
111
|
|
|
51
|
-
def __init__(
|
|
112
|
+
def __init__(
|
|
113
|
+
self,
|
|
114
|
+
infra: WorkerInfra | None = None,
|
|
115
|
+
brpc_config: BrpcLinkConfig | None = None,
|
|
116
|
+
) -> None:
|
|
52
117
|
# Optional shared infrastructure (for per-request isolation via link.spawn)
|
|
53
118
|
self._infra = infra
|
|
54
|
-
|
|
119
|
+
self._brpc_config = brpc_config or BrpcLinkConfig()
|
|
120
|
+
# Key: (local_rank, world_size, protocol, field, link_mode, spu_endpoints, brpc_config)
|
|
121
|
+
# ``brpc_config`` participates only when link_mode == "brpc" (else None) so that
|
|
122
|
+
# callers passing custom configs don't silently reuse the first config's link.
|
|
55
123
|
# Value: (Runtime, Io)
|
|
56
124
|
self._runtimes: dict[
|
|
57
|
-
tuple[
|
|
125
|
+
tuple[
|
|
126
|
+
int, int, str, str, str, tuple[str, ...] | None, BrpcLinkConfig | None
|
|
127
|
+
],
|
|
58
128
|
tuple[spu_api.Runtime, spu_api.Io],
|
|
59
129
|
] = {}
|
|
60
130
|
# Local template link cache (used when no WorkerInfra is provided)
|
|
@@ -140,6 +210,7 @@ class SPUState(DialectState):
|
|
|
140
210
|
config.field,
|
|
141
211
|
link_mode,
|
|
142
212
|
tuple(spu_endpoints) if spu_endpoints else None,
|
|
213
|
+
self._brpc_config if link_mode == "brpc" else None,
|
|
143
214
|
)
|
|
144
215
|
|
|
145
216
|
if cache_key in self._runtimes:
|
|
@@ -222,13 +293,36 @@ class SPUState(DialectState):
|
|
|
222
293
|
self, local_rank: int, spu_endpoints: list[str]
|
|
223
294
|
) -> libspu.link.Context:
|
|
224
295
|
"""Create BRPC link for distributed execution."""
|
|
296
|
+
cfg = self._brpc_config
|
|
225
297
|
desc = libspu.link.Desc() # type: ignore
|
|
226
|
-
desc.recv_timeout_ms =
|
|
227
|
-
desc.http_max_payload_size =
|
|
298
|
+
desc.recv_timeout_ms = cfg.recv_timeout_ms
|
|
299
|
+
desc.http_max_payload_size = cfg.http_max_payload_size
|
|
300
|
+
desc.brpc_channel_protocol = cfg.protocol
|
|
301
|
+
desc.brpc_channel_connection_type = cfg.connection_type
|
|
302
|
+
desc.connect_retry_times = cfg.connect_retry_times
|
|
303
|
+
desc.connect_retry_interval_ms = cfg.connect_retry_interval_ms
|
|
304
|
+
if cfg.http_timeout_ms is not None:
|
|
305
|
+
desc.http_timeout_ms = cfg.http_timeout_ms
|
|
228
306
|
|
|
229
307
|
for i, endpoint in enumerate(spu_endpoints):
|
|
230
308
|
desc.add_party(f"P{i}", endpoint)
|
|
231
309
|
|
|
310
|
+
logger.info(
|
|
311
|
+
"Creating SPU brpc link: rank=%d, endpoints=%s, protocol=%s, "
|
|
312
|
+
"connection_type=%s, recv_timeout_ms=%d, http_timeout_ms=%s, "
|
|
313
|
+
"http_max_payload_size=%d, connect_retry_times=%d, "
|
|
314
|
+
"connect_retry_interval_ms=%d",
|
|
315
|
+
local_rank,
|
|
316
|
+
spu_endpoints,
|
|
317
|
+
cfg.protocol,
|
|
318
|
+
cfg.connection_type,
|
|
319
|
+
cfg.recv_timeout_ms,
|
|
320
|
+
cfg.http_timeout_ms,
|
|
321
|
+
cfg.http_max_payload_size,
|
|
322
|
+
cfg.connect_retry_times,
|
|
323
|
+
cfg.connect_retry_interval_ms,
|
|
324
|
+
)
|
|
325
|
+
|
|
232
326
|
return libspu.link.create_brpc(desc, local_rank)
|
|
233
327
|
|
|
234
328
|
def shutdown(self) -> None:
|
|
@@ -1082,7 +1082,9 @@ class Interpreter(AbstractInterpreter):
|
|
|
1082
1082
|
return
|
|
1083
1083
|
|
|
1084
1084
|
# Store results
|
|
1085
|
-
if len(op.outputs) ==
|
|
1085
|
+
if len(op.outputs) == 0:
|
|
1086
|
+
pass # Void operation
|
|
1087
|
+
elif len(op.outputs) == 1:
|
|
1086
1088
|
env[op.outputs[0]] = result
|
|
1087
1089
|
else:
|
|
1088
1090
|
for out_val, res in zip(op.outputs, result, strict=True):
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/test_simp_integration.py
RENAMED
|
@@ -194,6 +194,50 @@ def test_nested_pcall():
|
|
|
194
194
|
assert values == [20, 40]
|
|
195
195
|
|
|
196
196
|
|
|
197
|
+
def test_pcall_static_zero_output():
|
|
198
|
+
"""Regression: pcall_static body returning None must not crash (IndexError).
|
|
199
|
+
|
|
200
|
+
When a function returns None, its traced graph has 0 outputs.
|
|
201
|
+
The driver/worker dispatch must handle this correctly.
|
|
202
|
+
"""
|
|
203
|
+
sim = simp.make_simulator(world_size=2)
|
|
204
|
+
with sim:
|
|
205
|
+
|
|
206
|
+
def side_effect_only(x):
|
|
207
|
+
# Produces a traced op but returns nothing
|
|
208
|
+
run_jax(jnp.abs, x)
|
|
209
|
+
return None
|
|
210
|
+
|
|
211
|
+
x0 = simp.constant((0,), 1)
|
|
212
|
+
x1 = simp.constant((1,), 2)
|
|
213
|
+
x_obj = simp.converge(x0, x1)
|
|
214
|
+
|
|
215
|
+
# Should not raise IndexError
|
|
216
|
+
result = pcall_static((0, 1), side_effect_only, x_obj)
|
|
217
|
+
assert result is None
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def test_pcall_static_zero_output_compile_evaluate():
|
|
221
|
+
"""Regression: compile+evaluate path with zero-output pcall_static."""
|
|
222
|
+
sim = simp.make_simulator(world_size=2)
|
|
223
|
+
with sim:
|
|
224
|
+
|
|
225
|
+
def workflow():
|
|
226
|
+
x0 = simp.constant((0,), 42)
|
|
227
|
+
x1 = simp.constant((1,), 99)
|
|
228
|
+
x_obj = simp.converge(x0, x1)
|
|
229
|
+
|
|
230
|
+
def body(x):
|
|
231
|
+
run_jax(jnp.abs, x)
|
|
232
|
+
return None
|
|
233
|
+
|
|
234
|
+
pcall_static((0, 1), body, x_obj)
|
|
235
|
+
|
|
236
|
+
traced = mp.compile(workflow)
|
|
237
|
+
result = mp.evaluate(traced)
|
|
238
|
+
assert result is None
|
|
239
|
+
|
|
240
|
+
|
|
197
241
|
def test_mp_function_decorator():
|
|
198
242
|
"""Test @mp.function decorator which implies pcall_static(ALL, ...)."""
|
|
199
243
|
sim = simp.make_simulator(world_size=3)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/state.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_driver/values.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/collectives.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/comm_context.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/infra.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/request.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/backends/simp_worker/state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/aggregation.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/groupby.md
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/groupby.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/mplang/libs/mpc/analytics/permutation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_driver/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_driver/test_http.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_http.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev332 → mplang_nightly-0.1.dev334}/tests/backends/simp_worker/test_mem.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|