MPI Pool similar to multiprocessing
Project description
About
mpipool
offers a Pool
class similar multiprocessing.Pool
from the standard library.
mpipool
uses MPIPool
implementation of
schwimmbad library
and circumvents some of its limitations:
- A series of
mpipool.Pool.map
calls do not crash, - In case a worker raises an exception, the MPI tasks are shut down properly so that the full program halts and does not hang.
Example usage
from mpipool import Pool
def add(a, b):
return a + b
p = Pool()
sums = p.map(add, [(ai, bi) for ai in range(10) for bi in range(10)])
assert len(sums) == 100
assert sums[0] == 0
assert sums[-1] == 18
sums = p.map(add, [(ai, bi) for ai in range(10) for bi in range(10)])
assert len(sums) == 100
assert sums[0] == 0
assert sums[-1] == 18
The program must be run on the commandline like:
$ mpirun -n 4 python example.py
Currently mpipool.Pool
only implements a map
method.
Contrary to the MPIPool
implementation of
schwimmbad
the statements after from mpipool import Pool
are only executed
by the task with rank 0
.
Credits
mpipool
uses of the MPIPool
implementation of
schwimmbad library.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mpipool-0.1.1.tar.gz
(4.7 kB
view details)
File details
Details for the file mpipool-0.1.1.tar.gz
.
File metadata
- Download URL: mpipool-0.1.1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c753f3ad2a547af4f3063b0152c24ac7f85d72e75e9dc8ddcb4857342e74fc |
|
MD5 | 7f1c586bca0f2dd894c3a85bfcbae089 |
|
BLAKE2b-256 | dd499fc3aa34316ad3dcb85ac518982f7dd21b971dbfcae32fd5bda38536dd45 |