|
@@ -1,8 +1,5 @@
|
1
|
1
|
# coding: utf-8
|
2
|
2
|
import os
|
3
|
|
-
|
4
|
|
-import multiprocessing
|
5
|
|
-
|
6
|
3
|
import psutil
|
7
|
4
|
import pytest
|
8
|
5
|
|
|
@@ -10,6 +7,8 @@ from synergine2.processing import ProcessManager
|
10
|
7
|
from synergine2.utils import ChunkManager
|
11
|
8
|
from tests import BaseTest
|
12
|
9
|
|
|
10
|
+available_cores = len(psutil.Process().cpu_affinity())
|
|
11
|
+
|
13
|
12
|
|
14
|
13
|
class MyFakeClass(object):
|
15
|
14
|
def __init__(self, value):
|
|
@@ -38,11 +37,11 @@ class TestProcessing(BaseTest):
|
38
|
37
|
result = sum(data)
|
39
|
38
|
return current_pid, MyFakeClass(result)
|
40
|
39
|
|
41
|
|
- @pytest.mark.skipif(len(psutil.Process().cpu_affinity()) < 2, reason="requires 2 or more cpus")
|
|
40
|
+ @pytest.mark.skipif(available_cores < 2, reason="requires 2 or more cpus")
|
42
|
41
|
def test_parallel_jobs_with_scalar(self):
|
43
|
|
- chunk_manager = ChunkManager(2)
|
|
42
|
+ chunk_manager = ChunkManager(available_cores)
|
44
|
43
|
process_manager = ProcessManager(
|
45
|
|
- process_count=2,
|
|
44
|
+ process_count=available_cores,
|
46
|
45
|
chunk_manager=chunk_manager,
|
47
|
46
|
)
|
48
|
47
|
|
|
@@ -84,11 +83,11 @@ class TestProcessing(BaseTest):
|
84
|
83
|
assert process_id == os.getpid()
|
85
|
84
|
assert final_result == 4950
|
86
|
85
|
|
87
|
|
- @pytest.mark.skipif(len(psutil.Process().cpu_affinity()) < 2, reason="requires 2 or more cpus")
|
|
86
|
+ @pytest.mark.skipif(available_cores < 2, reason="requires 2 or more cpus")
|
88
|
87
|
def test_parallel_jobs_with_objects(self):
|
89
|
|
- chunk_manager = ChunkManager(4)
|
|
88
|
+ chunk_manager = ChunkManager(available_cores)
|
90
|
89
|
process_manager = ProcessManager(
|
91
|
|
- process_count=4,
|
|
90
|
+ process_count=available_cores,
|
92
|
91
|
chunk_manager=chunk_manager,
|
93
|
92
|
)
|
94
|
93
|
|