Metadata-Version: 2.1
Name: pympipool
Version: 0.0.2
Summary: pympipool - scale functions over multiple compute nodes using mpi4py
Home-page: https://github.com/jan-janssen/pympipool
Author-email: jan.janssen@outlook.com
License: BSD
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
License-File: LICENSE

# pympipool
Scale functions over multiple compute nodes using mpi4py

Write a python test file like `pool.py`: 
```python
from pympipool import Pool

def calc(i):
    import numpy as np
    return np.array(i ** 2)

with Pool(cores=2) as p:
    print(p.map(function=calc, lst=[1, 2, 3, 4]))
```

You can execute the python file `pool.py` in a serial python process: 
```
python pool.py
>>> [array(1), array(4), array(9), array(16)]
```
Internally `pympipool` uses `mpi4py` to distribute the 4 calculation to two processors `cores=2`.  

Alternatively, you can copy all lines to a `jupyter notebook` or an `ipython` shell and execute them directly. But this does not work with a regular python shell. 
