Skip to content

Commit 3372df6

Browse files
author
Matthieu Ancellin
committed
Add experimental parallel map.
1 parent 4f0fa79 commit 3372df6

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

examples/parallel_map.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from time import sleep
2+
from labelled_functions.maps import parallel_pandas_map
3+
4+
def f(i):
5+
sleep(2.0)
6+
print(i)
7+
return 2*i
8+
9+
parallel_pandas_map(f, n_jobs=2, i=range(12))
10+
11+

labelled_functions/maps.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@
1616
def pandas_map(f, *args, **kwargs):
1717
f = label(f)
1818
dict_of_lists = _preprocess_map_inputs(f.input_names, args, kwargs)
19-
data = pd.DataFrame(list(lmap(keeping_inputs(f), **dict_of_lists)))
19+
data = list(lmap(keeping_inputs(f), **dict_of_lists))
20+
data = pd.DataFrame(data)
21+
return _set_index(f.input_names, data)
22+
23+
24+
def parallel_pandas_map(f, *args, n_jobs, **kwargs):
25+
# WIP
26+
from joblib import Parallel, delayed
27+
f = label(f)
28+
dict_of_lists = _preprocess_map_inputs(f.input_names, args, kwargs)
29+
data = Parallel(n_jobs=n_jobs)(lmap(delayed(keeping_inputs(f)), **dict_of_lists))
30+
data = pd.DataFrame(data)
2031
return _set_index(f.input_names, data)
2132

2233

wip_parallel.py

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)