Changes in IPython Parallel¶
To turn an IPython cluster into a dask.distributed cluster,
executor = client.become_distributed(ncores=1)
which returns a distributed
To register IPython Parallel as the backend for joblib:
import ipyparallel as ipp ipp.register_joblib_backend()
IPython parallel now supports the notebook-4.2 API for enabling server extensions, to provide the IPython clusters tab:
jupyter serverextension enable --py ipyparallel jupyter nbextension install --py ipyparallel jupyter nbextension enable --py ipyparallel
though you can still use the more convenient single-call:
ipcluster nbextension enable
which does all three steps above.
5.1.1 fixes iteration through AsyncResults, which was broken in some instances by 5.0.
- Fix imports in
- Various typos and documentation updates to catch up with 5.0.
The highlight of ipyparallel 5.0 is that the Client has been reorganized a bit to use Futures. AsyncResults are now a Future subclass, so they can be yield ed in coroutines, etc. Views have also received an Executor interface. This rewrite better connects results to their handles, so the Client.results cache should no longer grow unbounded.
Part of the Future refactor is that Client IO is now handled in a background thread,
which means that
Client.spin_thread() is obsolete and deprecated.
- Add ipcluster nbextension enable|disable to toggle the clusters tab in Jupyter notebook
Less interesting development changes for users:
Some IPython-parallel extensions to the IPython kernel have been moved to the ipyparallel package:
- ipykernel Python serialization is now in
- apply_request message handling is implememented in a Kernel subclass, rather than the base ipykernel Kernel.
- Improvements for specifying engines with SSH launcher.