rixa 0.0.2.dev0__tar.gz → 0.0.2rc2__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.
Files changed (30) hide show
  1. {rixa-0.0.2.dev0/src/rixa.egg-info → rixa-0.0.2rc2}/PKG-INFO +5 -4
  2. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/pyproject.toml +2 -2
  3. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/core.c +0 -2
  4. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_C10.cpp +1 -2
  5. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/pytorch.py +18 -2
  6. {rixa-0.0.2.dev0 → rixa-0.0.2rc2/src/rixa.egg-info}/PKG-INFO +5 -4
  7. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/requires.txt +3 -2
  8. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/LICENSE +0 -0
  9. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/MANIFEST.in +0 -0
  10. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/README.md +0 -0
  11. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/setup.cfg +0 -0
  12. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/setup.py +0 -0
  13. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/PMIx_core.pyi +0 -0
  14. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/__init__.py +0 -0
  15. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix.h +0 -0
  16. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_abi_support.h +0 -0
  17. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_abi_support_bottom.h +0 -0
  18. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_fns.h +0 -0
  19. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_macros.h +0 -0
  20. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_types.h +0 -0
  21. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_pmix_store.c +0 -0
  22. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_pmix_store.h +0 -0
  23. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/nvshmem.py +0 -0
  24. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/SOURCES.txt +0 -0
  25. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/dependency_links.txt +0 -0
  26. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/top_level.txt +0 -0
  27. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_nvshmem_init.py +0 -0
  28. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_pmix.py +0 -0
  29. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_pytorch_init.py +0 -0
  30. {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_pytorch_init_gpu.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rixa
3
- Version: 0.0.2.dev0
3
+ Version: 0.0.2rc2
4
4
  Summary: PMIx bootstrap method for modern AI/ML applications
5
5
  Author-email: Mateusz Kapusta <mr.kapusta@student.uw.edu.pl>
6
6
  Keywords: PMIx,HPC,distributed-computing,machine-learning,slurm
@@ -14,9 +14,10 @@ Classifier: Operating System :: POSIX :: Linux
14
14
  Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Provides-Extra: pytorch
18
- Requires-Dist: torch>=2.7.0; extra == "pytorch"
19
- Requires-Dist: numpy>=1.26; extra == "pytorch"
17
+ Provides-Extra: torch
18
+ Requires-Dist: torch>=2.8.0; extra == "torch"
19
+ Requires-Dist: numpy>=1.26; extra == "torch"
20
+ Requires-Dist: ninja; extra == "torch"
20
21
  Provides-Extra: nvshmem
21
22
  Requires-Dist: nvshmem4py; extra == "nvshmem"
22
23
  Requires-Dist: numpy>=1.26; extra == "nvshmem"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rixa"
3
- version = "0.0.2.dev"
3
+ version = "0.0.2.rc2"
4
4
  description = "PMIx bootstrap method for modern AI/ML applications"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -22,7 +22,7 @@ classifiers = [
22
22
  keywords = ["PMIx", "HPC", "distributed-computing", "machine-learning", "slurm"]
23
23
 
24
24
  [project.optional-dependencies]
25
- pytorch = ["torch>=2.7.0","numpy>=1.26"]
25
+ torch = ["torch>=2.8.0","numpy>=1.26","ninja"]
26
26
  nvshmem = ["nvshmem4py","numpy>=1.26"]
27
27
 
28
28
  [build-system]
@@ -153,8 +153,6 @@ static PyObject *get(PyObject *self, PyObject *args) {
153
153
 
154
154
  // 5. WATI
155
155
  static PyObject *wait_for_keys(PyObject *self, PyObject *args) {
156
- float delta_T = 0.1; // Fraction of second for every retry
157
- float total_sleep = 0; // total amount of time spend on sleeping
158
156
  PyPMIx *self_pmix = (PyPMIx *)self;
159
157
  PyObject *keys_list;
160
158
  int timeout;
@@ -2,14 +2,13 @@
2
2
  #include <cstdint>
3
3
  #include <pmix.h>
4
4
  #include <pybind11/pybind11.h>
5
- #include <pybind11/stl.h> // for std::vector, std::string conversions
5
+ #include <pybind11/stl.h>
6
6
  #include <stdexcept>
7
7
  #include <string>
8
8
  #include <torch/csrc/distributed/c10d/Store.hpp>
9
9
  #include <torch/csrc/utils/pybind.h>
10
10
 
11
11
  namespace py = pybind11;
12
- // include your C header
13
12
  extern "C" {
14
13
  #include "rixa_pmix_store.h"
15
14
  }
@@ -4,10 +4,22 @@ from rixa.PMIx_core import PMIxStore
4
4
  from typing import overload
5
5
  import os
6
6
  import importlib.util
7
+ from pathlib import Path
8
+ import ctypes
7
9
 
8
10
  _ext = None
9
11
 
10
12
 
13
+ def load_pmix():
14
+ libdir = Path(__file__).resolve().parent.parent / "rixa.libs"
15
+
16
+ candidates = list(libdir.glob("libpmix*.so*"))
17
+ if not candidates:
18
+ raise RuntimeError("PMIx not found")
19
+ lib = sorted(candidates)[0] # or better selection logic
20
+ ctypes.CDLL(str(lib), mode=ctypes.RTLD_GLOBAL)
21
+
22
+
11
23
  def _get_ext():
12
24
  global _ext
13
25
  if _ext is not None:
@@ -28,6 +40,7 @@ def _get_ext():
28
40
  )
29
41
 
30
42
  src_dir = os.path.join(os.path.dirname(__file__), "bindings")
43
+ load_pmix()
31
44
 
32
45
  _ext = cpp_ext.load(
33
46
  name="_rixa_torch", # no dots in JIT name
@@ -35,8 +48,11 @@ def _get_ext():
35
48
  os.path.join(src_dir, "rixa_pmix_store.c"),
36
49
  os.path.join(src_dir, "rixa_C10.cpp"),
37
50
  ],
38
- extra_cflags=["-O3"],
39
- extra_ldflags=["-lpmix"],
51
+ extra_cflags=[
52
+ "-O3",
53
+ ],
54
+ extra_ldflags=["-Wl,-rpath,$ORIGIN/../rixa.libs"],
55
+ # extra_ldflags=["-lpmix"],
40
56
  extra_include_paths=[
41
57
  src_dir,
42
58
  ],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rixa
3
- Version: 0.0.2.dev0
3
+ Version: 0.0.2rc2
4
4
  Summary: PMIx bootstrap method for modern AI/ML applications
5
5
  Author-email: Mateusz Kapusta <mr.kapusta@student.uw.edu.pl>
6
6
  Keywords: PMIx,HPC,distributed-computing,machine-learning,slurm
@@ -14,9 +14,10 @@ Classifier: Operating System :: POSIX :: Linux
14
14
  Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Provides-Extra: pytorch
18
- Requires-Dist: torch>=2.7.0; extra == "pytorch"
19
- Requires-Dist: numpy>=1.26; extra == "pytorch"
17
+ Provides-Extra: torch
18
+ Requires-Dist: torch>=2.8.0; extra == "torch"
19
+ Requires-Dist: numpy>=1.26; extra == "torch"
20
+ Requires-Dist: ninja; extra == "torch"
20
21
  Provides-Extra: nvshmem
21
22
  Requires-Dist: nvshmem4py; extra == "nvshmem"
22
23
  Requires-Dist: numpy>=1.26; extra == "nvshmem"
@@ -3,6 +3,7 @@
3
3
  nvshmem4py
4
4
  numpy>=1.26
5
5
 
6
- [pytorch]
7
- torch>=2.7.0
6
+ [torch]
7
+ torch>=2.8.0
8
8
  numpy>=1.26
9
+ ninja
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes