smpl.parallel

Simplified parallelization.

calc(f, *args, **kwargs)

Parallel evaluation of the list generator from gen().

gen(f, *args, **kwargs)

Generates parallel execution list generator.

par(f, *args, **kwargs)

Parallel execution of f on each element of args and kwargs

parallel(f, arr[, n_jobs])

Parallel execution of f on each element of args

partitioned_parallel(f, arr[, n_jobs])

Parallel execution of f on each element of args

res(a)

Parallel evaluation of the list generator from gen().

Functions

smpl.parallel.calc(f, *args, **kwargs)[source]

Parallel evaluation of the list generator from gen().

Return parallel executed values.

>>> def twice(x):
...     return x+x
>>> for r in [calc(twice,i) for i in range(0,5)]:
...     print(res(r))
0
2
4
6
8
>>> res([calc(lambda x : x**3, i) for i in range(0,5)])
[0, 1, 8, 27, 64]
smpl.parallel.gen(f, *args, **kwargs)[source]

Generates parallel execution list generator.

smpl.parallel.par(f, *args, **kwargs)[source]

Parallel execution of f on each element of args and kwargs

>>> par(lambda x : x**2, range(0,5))
[0, 1, 4, 9, 16]
smpl.parallel.parallel(f, arr, n_jobs=None)

Parallel execution of f on each element of args

>>> partitioned_parallel(lambda x : x**2, range(0,5))
[0, 1, 4, 9, 16]
smpl.parallel.partitioned_parallel(f, arr, n_jobs=None)[source]

Parallel execution of f on each element of args

>>> partitioned_parallel(lambda x : x**2, range(0,5))
[0, 1, 4, 9, 16]
smpl.parallel.res(a)[source]

Parallel evaluation of the list generator from gen().

Return parallel executed values.

>>> def twice(x):
...     return x+x
>>> for r in [calc(twice,i) for i in range(0,5)]:
...     print(res(r))
0
2
4
6
8
>>> res([calc(lambda x : x**3, i) for i in range(0,5)])
[0, 1, 8, 27, 64]