Passed
Push — master ( 8c2877...30eff7 )
by Simon
01:50
created

hyperactive.distribution.ray_wrapper()   A

Complexity

Conditions 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nop 4
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
6
def single_process(process_func, process_infos):
7
    results = [process_func(*info) for info in process_infos]
8
9
    return results
10
11
12
def multiprocessing_wrapper(process_func, process_infos, n_processes):
13
    import multiprocessing as mp
14
15
    pool = mp.Pool(n_processes)
16
    results = pool.map(process_func, process_infos)
17
18
    return results
19
20
21
def pathos_wrapper(process_func, search_processes_paras, n_processes, **kwargs):
22
    import pathos.multiprocessing as pmp
23
24
    pool = pmp.Pool(n_processes, **kwargs)
25
    results = pool.map(process_func, search_processes_paras)
26
27
    return results
28
29
30
def joblib_wrapper(process_func, search_processes_paras, n_processes, **kwargs):
31
    from joblib import Parallel, delayed
32
33
    jobs = [delayed(process_func)(*info_dict) for info_dict in search_processes_paras]
34
    results = Parallel(n_jobs=n_processes, **kwargs)(jobs)
35
36
    return results
37