Psyrun is a Python tool to define parameter spaces and execute an evaluation function for each parameter assignment. In addition Psyrun makes it easy to use serial farming, i.e. evaluating multiple parameter assignments in parallel, on a multicore computers and high-performance clusters.
The documentation can be found here.
Define parameter spaces and evaluate them:
from psyrun import map_pspace, Param
def objective(a, b, c):
return a * b + c
pspace = (Param(a=np.arange(1, 5))
* Param(b=np.linspace(0, 1, 10))
* Param(c=[1., 1.5, 10., 10.5]))
results = map_pspace(objective, pspace)
Or do it in parallel:
from psyrun import map_pspace_parallel
results = map_pspace_parallel(objective, pspace)
Define tasks by placing task_<name>.py
files in the psy-tasks` directory:
from psyrun import Param
pspace = (Param(a=np.arange(1, 5))
* Param(b=np.linspace(0, 1, 10))
* Param(c=[1., 1.5, 10., 10.5]))
def execute(a, b, c):
return {'result': a * b + c}
and run them by typing psy run
with support for serial farming on high
performance clusters.
pip install psyrun
To be able to use the NPZ store:
pip install numpy pip install 'psyrun[npz]'
To be able to use the HDF5 store:
pip install numpy pip install 'psyrun[h5]'
To have faulthandler activated for
jobs submitted with psy run
in Python 2.7:
Python 3.4+ already includes the faulthandler module.
To use map_pspace_parallel
:
To use NPZ files as store:
To use HDF5 files as store:
To run the unit tests:
To build the documentation: