rixa 0.0.2.dev0__tar.gz → 0.0.2rc1__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.2rc1}/PKG-INFO +2 -1
  2. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/pyproject.toml +2 -2
  3. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/pytorch.py +18 -2
  4. {rixa-0.0.2.dev0 → rixa-0.0.2rc1/src/rixa.egg-info}/PKG-INFO +2 -1
  5. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa.egg-info/requires.txt +1 -0
  6. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/LICENSE +0 -0
  7. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/MANIFEST.in +0 -0
  8. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/README.md +0 -0
  9. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/setup.cfg +0 -0
  10. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/setup.py +0 -0
  11. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/PMIx_core.pyi +0 -0
  12. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/__init__.py +0 -0
  13. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/core.c +0 -0
  14. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix.h +0 -0
  15. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix_abi_support.h +0 -0
  16. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix_abi_support_bottom.h +0 -0
  17. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix_fns.h +0 -0
  18. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix_macros.h +0 -0
  19. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/pmix_types.h +0 -0
  20. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/rixa_C10.cpp +0 -0
  21. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/rixa_pmix_store.c +0 -0
  22. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/bindings/rixa_pmix_store.h +0 -0
  23. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa/nvshmem.py +0 -0
  24. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa.egg-info/SOURCES.txt +0 -0
  25. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa.egg-info/dependency_links.txt +0 -0
  26. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/src/rixa.egg-info/top_level.txt +0 -0
  27. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/tests/test_nvshmem_init.py +0 -0
  28. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/tests/test_pmix.py +0 -0
  29. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/tests/test_pytorch_init.py +0 -0
  30. {rixa-0.0.2.dev0 → rixa-0.0.2rc1}/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.2rc1
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
@@ -17,6 +17,7 @@ License-File: LICENSE
17
17
  Provides-Extra: pytorch
18
18
  Requires-Dist: torch>=2.7.0; extra == "pytorch"
19
19
  Requires-Dist: numpy>=1.26; extra == "pytorch"
20
+ Requires-Dist: ninja; extra == "pytorch"
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.rc1"
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
+ pytorch = ["torch>=2.7.0","numpy>=1.26","ninja"]
26
26
  nvshmem = ["nvshmem4py","numpy>=1.26"]
27
27
 
28
28
  [build-system]
@@ -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.2rc1
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
@@ -17,6 +17,7 @@ License-File: LICENSE
17
17
  Provides-Extra: pytorch
18
18
  Requires-Dist: torch>=2.7.0; extra == "pytorch"
19
19
  Requires-Dist: numpy>=1.26; extra == "pytorch"
20
+ Requires-Dist: ninja; extra == "pytorch"
20
21
  Provides-Extra: nvshmem
21
22
  Requires-Dist: nvshmem4py; extra == "nvshmem"
22
23
  Requires-Dist: numpy>=1.26; extra == "nvshmem"
@@ -6,3 +6,4 @@ numpy>=1.26
6
6
  [pytorch]
7
7
  torch>=2.7.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