Multiclass-interface 1.11__tar.gz → 1.14__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.
- {multiclass_interface-1.11 → multiclass_interface-1.14}/.gitlab-ci.yml +1 -1
- {multiclass_interface-1.11 → multiclass_interface-1.14/Multiclass_interface.egg-info}/PKG-INFO +2 -2
- {multiclass_interface-1.11/Multiclass_interface.egg-info → multiclass_interface-1.14}/PKG-INFO +2 -2
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/mpi_interface.py +14 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/multiprocess_interface.py +8 -1
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/test_mpi.py +4 -2
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/version.py +2 -2
- {multiclass_interface-1.11 → multiclass_interface-1.14}/.gitignore +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/LICENSE +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/SOURCES.txt +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/dependency_links.txt +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/requires.txt +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/top_level.txt +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/README.md +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/__init__.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/multi_object_list.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/__init__.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/my_test_cls.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/test_multiclass_list.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/test_multiprocessinterface.py +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/pyproject.toml +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/sequence_diagrams.md +0 -0
- {multiclass_interface-1.11 → multiclass_interface-1.14}/setup.cfg +0 -0
|
@@ -61,7 +61,7 @@ pypi_linux:
|
|
|
61
61
|
#- pip install pypandoc
|
|
62
62
|
- pip install -e . --upgrade
|
|
63
63
|
- pip install --upgrade build
|
|
64
|
-
- pip install --upgrade
|
|
64
|
+
- pip install twine==6.0.1 --upgrade
|
|
65
65
|
- python3 -m build
|
|
66
66
|
- twine upload dist/* -u $TWINE_USERNAME -p $TWINE_PASSWORD
|
|
67
67
|
rules:
|
{multiclass_interface-1.11 → multiclass_interface-1.14/Multiclass_interface.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: Multiclass_interface
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14
|
|
4
4
|
Summary: Multiclass interface
|
|
5
5
|
Author-email: "Mads M. Pedersen" <mmpe@dtu.dk>
|
|
6
6
|
Project-URL: Homepage, https://gitlab.windenergy.dtu.dk/DYNAMIKS/multiclass_interface
|
{multiclass_interface-1.11/Multiclass_interface.egg-info → multiclass_interface-1.14}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: Multiclass_interface
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14
|
|
4
4
|
Summary: Multiclass interface
|
|
5
5
|
Author-email: "Mads M. Pedersen" <mmpe@dtu.dk>
|
|
6
6
|
Project-URL: Homepage, https://gitlab.windenergy.dtu.dk/DYNAMIKS/multiclass_interface
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/mpi_interface.py
RENAMED
|
@@ -43,6 +43,20 @@ TERMINATE_ON_CLOSE = True # MPI workers (rank>0) will terminate (sys.exit) when
|
|
|
43
43
|
COLLECTIVE_MPI = True # rank0 acts as a single point of contact (scatters command+arg and gathers results)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def main_run(f, *args, **kwargs):
|
|
47
|
+
if main:
|
|
48
|
+
r = f(*args, **kwargs)
|
|
49
|
+
if COLLECTIVE_MPI:
|
|
50
|
+
return r[0]
|
|
51
|
+
else:
|
|
52
|
+
try:
|
|
53
|
+
f(*args, **kwargs)
|
|
54
|
+
except BaseException:
|
|
55
|
+
pass
|
|
56
|
+
r = None
|
|
57
|
+
return comm.bcast(r)
|
|
58
|
+
|
|
59
|
+
|
|
46
60
|
class MPIClassInterface():
|
|
47
61
|
def __init__(self, cls, args_lst):
|
|
48
62
|
if len(args_lst) > size:
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import multiprocessing
|
|
2
2
|
import atexit
|
|
3
|
+
import os
|
|
4
|
+
try:
|
|
5
|
+
# before importing numpy
|
|
6
|
+
os.environ['OPENBLAS_NUM_THREADS'] = '1'
|
|
7
|
+
os.environ['MKL_NUM_THREADS'] = '1'
|
|
8
|
+
except Exception: # pragma: no cover
|
|
9
|
+
pass
|
|
10
|
+
|
|
3
11
|
import numpy as np
|
|
4
12
|
from threading import Thread
|
|
5
13
|
from functools import wraps
|
|
6
14
|
import traceback
|
|
7
15
|
from _queue import Empty
|
|
8
|
-
import os
|
|
9
16
|
from contextlib import contextmanager
|
|
10
17
|
import sys
|
|
11
18
|
import inspect
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/test_mpi.py
RENAMED
|
@@ -21,6 +21,8 @@ def mpitest_mpi_MyTest():
|
|
|
21
21
|
i = m.get_id()
|
|
22
22
|
npt.assert_array_equal(i, np.arange(N))
|
|
23
23
|
|
|
24
|
+
i = mpi_interface.main_run(lambda: m.get_id())
|
|
25
|
+
npt.assert_array_equal(i, 0)
|
|
24
26
|
npt.assert_array_equal(m[1:3].get_id(), np.arange(1, 3))
|
|
25
27
|
t = time.time()
|
|
26
28
|
m.work(1)
|
|
@@ -54,6 +56,8 @@ def mpitest_non_collective_mpi():
|
|
|
54
56
|
|
|
55
57
|
try:
|
|
56
58
|
assert m.get_id()[0] == rank + 10, m.get_id()
|
|
59
|
+
main_id = mpi_interface.main_run(lambda: m.get_id())
|
|
60
|
+
assert main_id == [10], (rank, main_id)
|
|
57
61
|
assert rank < N # rank > N will fail with ChildProcessError
|
|
58
62
|
except ChildProcessError:
|
|
59
63
|
pass
|
|
@@ -86,9 +90,7 @@ def mpitest_all():
|
|
|
86
90
|
try:
|
|
87
91
|
with MPIClassInterface(MyTest, [(1,), (2,), (3,)]) as mpici:
|
|
88
92
|
for f in [test_attribute, test_missing_attribute, test_execption, test_setattr, test_setattr_method]:
|
|
89
|
-
|
|
90
93
|
run(f, mpici)
|
|
91
|
-
|
|
92
94
|
except ChildProcessError:
|
|
93
95
|
pass
|
|
94
96
|
|
|
File without changes
|
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/requires.txt
RENAMED
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/Multiclass_interface.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/multi_object_list.py
RENAMED
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/__init__.py
RENAMED
|
File without changes
|
{multiclass_interface-1.11 → multiclass_interface-1.14}/multiclass_interface/tests/my_test_cls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|