• Worker insights added, providing users insight in multiprocessing efficiency

  • worker_init and worker_exit parameters added to each map function

  • max_active_tasks is now set to n_jobs * 2 when max_active_tasks=None, to speed up most jobs

  • n_splits is now set to n_jobs * 64 when both chunk_size and n_splits are None

  • Dashboard ports can now be configured

  • Renamed func_pointer to func in each map function

  • Fixed a bug with the threading backend not terminating correctly

  • Fixed a bug with the progress bar not showing correctly in notebooks

  • Using multiprocess is now the default

  • Added some debug logging

  • Refactored a lot of code

  • Minor bug fixes, which should make things more stable.

  • Removed Python 3.5 support

  • Removed add_task, get_result, insert_poison_pill, stop_workers, and join functions from mpire.WorkerPool. Made start_workers private. There wasn’t any reason to use these functions.



  • Updated documentation CSS which fixes bullet lists not showing properly



  • Updated some unittests and fixed some linting issues

  • Minor improvements in documentation



  • Workers can be kept alive in between consecutive map calls

  • Setting CPU affinity is no longer restricted to Linux platforms

  • README updated to use RST format for better compatibility with PyPI

  • Added classifiers to the setup file



  • First public release on Github and PyPi



  • Added missing typing information

  • Updated some docstrings

  • Added license



  • Changed collections.Iterable to due to deprecation of the former



  • Removed custom progress bar support to fix Jupyter notebook support

  • New progress_bar_position parameter is now available to set the position of the progress bar when using nested worker pools

  • Screen resizing is now supported when using a progress bar



  • Added the MPIRE dashboard

  • Added threading as a possible backend

  • Progress bar handling now occurs in a separate process, instead of a thread, to improve responsiveness

  • Refactoring of code and small bug fixes in error handling

  • Removed deprecated functionality



  • Added support for using different start methods (‘spawn’ and ‘forkserver’) instead of only the default method ‘fork’

  • Added optional support for using dill in multiprocessing by utilizing the multiprocess library

  • The mpire.Worker class is no longer directly available



  • Fixed bug when process would hang when progress bar was set to True and an empty iterable was provided



  • Added support for worker state

  • Chunking numpy arrays is now done using numpy slicing

  • now supports automatic concatenation of numpy array output



  • Small bug fix when not passing on a boolean or tqdm object for the progress_bar parameter



  • You can now pass on a dictionary as an argument which will be unpacked accordingly using the **-operator.

  • New function mpire.utils.make_single_arguments() added which allows you to create an iterable of single argument tuples out of an iterable of single arguments



  • mpire.utils.chunk_tasks() is now available as a public function

  • Chunking in above function and map functions now accept a n_splits parameter

  • iterable_of_args in map functions can now contain single values instead of only iterables

  • tqdm is now available from the MPIRE package which automatically switches to the Jupyter/IPython notebook widget when available

  • Small bugfix in cleaning up a worker pool when no map function was called



  • Fixed a second bug where the main process could get unresponsive when an exception was raised



  • Fixed bug where sometimes exceptions fail to pickle

  • Fixed a bug where the main process could get unresponsive when an exception was raised

  • Child processes are now cleaned up in parallel when an exception was raised



  • restart_workers parameter is now deprecated and will be removed from v1.0.0

  • Progress bar functionality added (using tqdm)

  • Improved error handling in user provided functions

  • Fixed randomly occurring BrokenPipeErrors and deadlocks



  • Child processes can now also be pinned to a range of CPUs, instead of only a single one. You can also specify a single CPU or range of CPUs that have to be shared between all child processes



  • Added CPU pinning.

  • Default number of processes to spawn when using n_jobs=None is now set to the number of CPUs available, instead of cpu_count() - 1



  • Workers can now be started as normal child processes (non-deamon) such that nested mpire.WorkerPool s are possible





  • Added docs


First release