Changes in IPython Parallel¶
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.
See also
- The Executor API
ipyparallel.ViewExecutor - Creating an Executor from a Client:
ipyparallel.Client.executor() - Each View has an
executorattribute
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.
Other changes:
- 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.datapubis nowipyparallel.datapub- ipykernel Python serialization is now in
ipyparallel.serialize - apply_request message handling is implememented in a Kernel subclass, rather than the base ipykernel Kernel.
4.1¶
- Add
Client.wait_interactive() - Improvements for specifying engines with SSH launcher.