Changes in IPython Parallel


5.0 on GitHub

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 executor attribute

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.datapub is now ipyparallel.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 on GitHub

  • Add Client.wait_interactive()
  • Improvements for specifying engines with SSH launcher.


4.0 on GitHub

First release of ipyparallel as a standalone package.