Changelog¶
2.3.3¶
(2021-11-29)
Changed progress bar handler process to thread, making it more stable (especially in notebooks)
Changed progress bar tasks completed queue to array, to make it more responsive and faster
Disabled the tqdm monitor thread which, in combination with MPIRE’s own tqdm lock, could result in deadlocks
2.3.2¶
(2021-11-19)
Included license file in source distribution (#25)
2.3.1¶
(2021-11-16)
Made connecting to the tqdm manager more robust (#23)
2.3.0¶
(2021-10-15)
Fixed progress bar in a particular setting with iPython and django installed (#13)
keep_alivenow works even when the function to be called or any other parameter passed to themapfunction is changed (#15)Moved
enable_insightsto the WorkerPool constructor. Usingenable_insightsfrom amapfunction is now deprecated and will be removed in MPIRE v2.6.0.Restructured docs and updated several sections for Windows users.
2.2.1¶
(2021-08-31)
Fixed compatibility with newer tqdm versions (
>= 4.62.2) (#11)
2.2.0¶
(2021-08-30)
Added support for Windows (#6, #7). Support has a few caveats:
When using worker insights the arguments of the top 5 longest tasks are not available
Progress bar is not supported when using threading as start method
When using
dilland an exception occurs, or when the exception occurs in an exit function, it can print additionalOSErrormessages in the terminal, but these can be safely ignored.
2.1.1¶
(2021-08-26)
Fixed a bug with newer versions of tqdm. The progress bar would throw an
AttributeErrorwhen connected to a dashboard.README and documentation updated
2.1.0¶
(2021-08-06)
Workers now have their own task queue, which speeds up tasks with bigger payloads
Fixed progress bar showing error information when completed without error
Fixed progress bar and worker insights not displaying properly when using threading
Progress bar handling improved accross several scenarios
Dashboard can now handle progress bars when using
spawnorforkserveras start methodAdded closing of
multiprocessing.JoinableQueueobjects, to clean up intermediate junkRemoved
numpydependencyMade
dilloptional again. In many cases it slows processing down
2.0.0¶
(2021-07-07)
Worker insights added, providing users insight in multiprocessing efficiency
worker_initandworker_exitparameters added to eachmapfunctionmax_active_tasksis now set ton_jobs * 2whenmax_active_tasks=None, to speed up most jobsn_splitsis now set ton_jobs * 64when bothchunk_sizeandn_splitsareNoneDashboard ports can now be configured
Renamed
func_pointertofuncin eachmapfunctionFixed a bug with the threading backend not terminating correctly
Fixed a bug with the progress bar not showing correctly in notebooks
Using
multiprocessis now the defaultAdded 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, andjoinfunctions frommpire.WorkerPool. Madestart_workersprivate. There wasn’t any reason to use these functions.
1.2.2¶
(2021-04-23)
Updated documentation CSS which fixes bullet lists not showing properly
1.2.1¶
(2021-04-22)
Updated some unittests and fixed some linting issues
Minor improvements in documentation
1.2.0¶
(2021-04-22)
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
1.1.3¶
(2020-09-03)
First public release on Github and PyPi
1.1.2¶
(2020-08-27)
Added missing typing information
Updated some docstrings
Added license
1.1.1¶
(2020-02-19)
Changed
collections.Iterabletocollections.abc.Iterabledue to deprecation of the former
1.1.0¶
(2019-10-31)
Removed custom progress bar support to fix Jupyter notebook support
New
progress_bar_positionparameter is now available to set the position of the progress bar when using nested worker poolsScreen resizing is now supported when using a progress bar
1.0.0¶
(2019-10-29)
Added the MPIRE dashboard
Added
threadingas a possible backendProgress 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
0.9.0¶
(2019-03-11)
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.Workerclass is no longer directly available
0.8.1¶
(2019-02-06)
Fixed bug when process would hang when progress bar was set to
Trueand an empty iterable was provided
0.8.0¶
(2018-11-01)
Added support for worker state
Chunking numpy arrays is now done using numpy slicing
mpire.WorkerPool.map()now supports automatic concatenation of numpy array output
0.7.2¶
(2018-06-14)
Small bug fix when not passing on a boolean or
tqdmobject for theprogress_barparameter
0.7.1¶
(2017-12-20)
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
0.7.0¶
(2017-12-11)
mpire.utils.chunk_tasks()is now available as a public functionChunking in above function and map functions now accept a
n_splitsparameteriterable_of_argsin map functions can now contain single values instead of only iterablestqdmis now available from the MPIRE package which automatically switches to the Jupyter/IPython notebook widget when availableSmall bugfix in cleaning up a worker pool when no map function was called
0.6.2¶
(2017-11-07)
Fixed a second bug where the main process could get unresponsive when an exception was raised
0.6.1¶
(2017-11-06)
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
0.6.0¶
(2017-11-03)
restart_workersparameter is now deprecated and will be removed from v1.0.0Progress bar functionality added (using tqdm)
Improved error handling in user provided functions
Fixed randomly occurring
BrokenPipeErrorsand deadlocks
0.5.1¶
(2017-10-12)
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
0.5.0¶
(2017-10-06)
Added CPU pinning.
Default number of processes to spawn when using
n_jobs=Noneis now set to the number of CPUs available, instead ofcpu_count() - 1
0.4.0¶
(2017-10-05)
Workers can now be started as normal child processes (non-deamon) such that nested
mpire.WorkerPools are possible
0.3.0¶
(2017-09-15)
The worker ID can now be passed on the function to be executed by using the
mpire.WorkerPool.pass_on_worker_id()functionRemoved the use of
has_return_value_with_shared_objectswhen usingmpire.WorkerPool.set_shared_objects(). MPIRE now handles both cases out of the box
0.2.0¶
(2017-06-27)
Added docs
0.1.0¶
First release