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.
- {rixa-0.0.2.dev0/src/rixa.egg-info → rixa-0.0.2rc2}/PKG-INFO +5 -4
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/pyproject.toml +2 -2
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/core.c +0 -2
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_C10.cpp +1 -2
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/pytorch.py +18 -2
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2/src/rixa.egg-info}/PKG-INFO +5 -4
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/requires.txt +3 -2
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/LICENSE +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/MANIFEST.in +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/README.md +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/setup.cfg +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/setup.py +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/PMIx_core.pyi +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/__init__.py +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_abi_support.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_abi_support_bottom.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_fns.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_macros.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/pmix_types.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_pmix_store.c +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/bindings/rixa_pmix_store.h +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa/nvshmem.py +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/SOURCES.txt +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/dependency_links.txt +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/src/rixa.egg-info/top_level.txt +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_nvshmem_init.py +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_pmix.py +0 -0
- {rixa-0.0.2.dev0 → rixa-0.0.2rc2}/tests/test_pytorch_init.py +0 -0
- {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.
|
|
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:
|
|
18
|
-
Requires-Dist: torch>=2.
|
|
19
|
-
Requires-Dist: numpy>=1.26; extra == "
|
|
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.
|
|
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
|
-
|
|
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>
|
|
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=[
|
|
39
|
-
|
|
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.
|
|
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:
|
|
18
|
-
Requires-Dist: torch>=2.
|
|
19
|
-
Requires-Dist: numpy>=1.26; extra == "
|
|
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"
|
|
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
|