* Thu Mar 05 2020 email@example.com
- version update to 0.14.1
- Configure the loky workers' environment to mitigate oversubsription with
nested multi-threaded code in the following case:
- allow for a suitable number of threads for numba (``NUMBA_NUM_THREADS``);
- enable Interprocess Communication for scheduler coordination when the
nested code uses Threading Building Blocks (TBB) (``ENABLE_IPC=1``)
- Fix a regression where the loky backend was not reusing previously
- Revert https://github.com/joblib/joblib/pull/847 to avoid using
`pkg_resources` that introduced a performance regression under Windows:
- Improved the load balancing between workers to avoid stranglers caused by an
excessively large batch size when the task duration is varying significantly
(because of the combined use of ``joblib.Parallel`` and ``joblib.Memory``
with a partially warmed cache for instance).
- Add official support for Python 3.8: fixed protocol number in `Hasher`
and updated tests.
- Fix a deadlock when using the dask backend (when scattering large numpy
- Warn users that they should never use `joblib.load` with files from
untrusted sources. Fix security related API change introduced in numpy
1.6.3 that would prevent using joblib with recent numpy versions.
- Upgrade to cloudpickle 1.1.1 that add supports for the upcoming
Python 3.8 release among other things.
- Fix semaphore availability checker to avoid spawning resource trackers
on module import.
- Fix the oversubscription protection to only protect against nested
`Parallel` calls. This allows `joblib` to be run in background threads.
- Fix `ValueError` (negative dimensions) when pickling large numpy arrays on
- Upgrade to loky 2.6.0 that add supports for the setting environment variables
in child before loading any module.
- Fix the oversubscription protection for native libraries using threadpools
(OpenBLAS, MKL, Blis and OpenMP runtimes).
The maximal number of threads is can now be set in children using the
``inner_max_num_threads`` in ``parallel_backend``. It defaults to
``cpu_count() // n_jobs``.
- deleted patches
- numpy16.patch (upstreamed)
* Tue May 28 2019 Tomá? Chvátal <firstname.lastname@example.org>
- Switch to %pytest
- Add patch to work well with new numpy:
* Tue Mar 26 2019 Tomá? Chvátal <email@example.com>
- Update to 0.13.2:
* Upgrade to cloudpickle 0.8.0
* Add a non-regression test related to joblib issues #836 and #833, reporting that cloudpickle versions between 0.5.4 and 0.7 introduced a bug where global variables changes in a parent process between two calls to joblib.Parallel would not be propagated into the workers
* Thu Mar 07 2019 John Vandenberg <firstname.lastname@example.org>
- Remove no longer necessary pytest argument
- k 'not test_no_blas_crash_or_freeze_with_subprocesses'
* Tue Jan 29 2019 email@example.com
- Update to Release 0.13.1:
* Memory now accepts pathlib.Path objects as ``location``
parameter. Also, a warning is raised if the returned backend
is None while ``location`` is not None.
* Make ``Parallel`` raise an informative ``RuntimeError`` when
the active parallel backend has zero worker.
* Make the ``DaskDistributedBackend`` wait for workers before
trying to schedule work. This is useful in particular when
the workers are provisionned dynamically but provisionning is
not immediate (for instance using Kubernetes, Yarn or an HPC
* Mon Jan 07 2019 Todd R <firstname.lastname@example.org>
- update to Release 0.13.0
* Include loky 2.4.2 with default serialization with ``cloudpickle``.
This can be tweaked with the environment variable ``LOKY_PICKLER``.
* Fix nested backend in SequentialBackend to avoid changing the default
backend to Sequential. (#792)
* Fix nested_backend behavior to avoid setting the default number of
workers to -1 when the backend is not dask. (#784)
- Update to Release 0.12.5
* Include loky 2.3.1 with better error reporting when a worker is
abruptly terminated. Also fixes spurious debug output.
* Include cloudpickle 0.5.6. Fix a bug with the handling of global
variables by locally defined functions.
- Update to Release 0.12.4
* Include loky 2.3.0 with many bugfixes, notably w.r.t. when setting
non-default multiprocessing contexts. Also include improvement on
memory management of long running worker processes and fixed issues
when using the loky backend under PyPy.
* Raises a more explicit exception when a corrupted MemorizedResult is loaded.
* Loading a corrupted cached file with mmap mode enabled would
recompute the results and return them without memmory mapping.
- Update to Release 0.12.3
* Fix joblib import setting the global start_method for multiprocessing.
* Fix MemorizedResult not picklable (#747).
* Fix Memory, MemorizedFunc and MemorizedResult round-trip pickling +
* Fixed a regression in Memory when positional arguments are called as
kwargs several times with different values (#751).
* Integration of loky 2.2.2 that fixes issues with the selection of the
default start method and improve the reporting when calling functions
with arguments that raise an exception when unpickling.
* Prevent MemorizedFunc.call_and_shelve from loading cached results to
RAM when not necessary. Results in big performance improvements
- Update to Release 0.12.2
* Integrate loky 2.2.0 to fix regression with unpicklable arguments and
functions reported by users (#723, #643).
* Loky 2.2.0 also provides a protection against memory leaks long running
applications when psutil is installed (reported as #721).
* Joblib now includes the code for the dask backend which has been updated
to properly handle nested parallelism and data scattering at the same
* Restored some private API attribute and arguments
(`MemorizedResult.argument_hash` and `BatchedCalls.__init__`'s
`pickle_cache`) for backward compat. (#716, #732).
* Fix a deprecation warning message (for `Memory`'s `cachedir`) (#720).
* Thu Jan 03 2019 Tomá? Chvátal <email@example.com>
- Disable blas test as it is very flaky outside of x86_64
* Fri Jul 27 2018 firstname.lastname@example.org
- Use noun phrase in summary.
* Fri Jul 20 2018 email@example.com
- Enable tests
* Wed Jul 18 2018 firstname.lastname@example.org
* remove devel requirement
- update to version 0.12.1:
* Make sure that any exception triggered when serializing jobs in
the queue will be wrapped as a PicklingError as in past versions
* Fix kwonlydefaults key error in filter_args (#715)
- changes from version 0.12:
* Implement the 'loky' backend with @ogrisel. This backend relies on
a robust implementation of concurrent.futures.ProcessPoolExecutor
with spawned processes that can be reused accross the Parallel
calls. This fixes the bad interation with third paty libraries
relying on thread pools, described in
* Limit the number of threads used in worker processes by
C-libraries that relies on threadpools. This functionality works
for MKL, OpenBLAS, OpenMP and Accelerated.
* Prevent numpy arrays with the same shape and data from hashing to
the same memmap, to prevent jobs with preallocated arrays from
writing over each other.
* Reduce overhead of automatic memmap by removing the need to hash
* Make Memory.cache robust to PermissionError (errno 13) under
Windows when run in combination with Parallel.
* The automatic array memory mapping feature of Parallel does no
longer use /dev/shm if it is too small (less than 2 GB). In
particular in docker containers /dev/shm is only 64 MB by default
which would cause frequent failures when running joblib in Docker
* Make it possible to hint for thread-based parallelism with
prefer='threads' or enforce shared-memory semantics with
* Rely on the built-in exception nesting system of Python 3 to
preserve traceback information when an exception is raised on a
remote worker process. This avoid verbose and redundant exception
reports under Python 3.
* Preserve exception type information when doing nested Parallel
calls instead of mapping the exception to the generic
* Introduce the concept of 'store' and refactor the Memory internal
storage implementation to make it accept extra store backends for
caching results. backend and backend_options are the new options
added to Memory to specify and configure a store backend.
* Add the register_store_backend function to extend the store
backend used by default with Memory. This default store backend is
named 'local' and corresponds to the local filesystem.
* The store backend API is experimental and thus is subject to
change in the future without deprecation.
* The cachedir parameter of Memory is now marked as deprecated, use
* Add support for LZ4 compression if lz4 package is installed.
* Add register_compressor function for extending available
* Allow passing a string to compress parameter in dump funtion. This
string should correspond to the compressor used (e.g. zlib, gzip,
lz4, etc). The default compression level is used in this case.
* Allow parallel_backend to be used globally instead of only as a
context manager. Support lazy registration of external parallel
* Thu Jan 11 2018 email@example.com
- Ensure neutrality of description.
* Mon May 22 2017 firstname.lastname@example.org
- Implement single-spec version.
- Run tests.
- Fix source URL.
- Update to version 0.11.
* For a full changelog please see:
* Sun May 24 2015 email@example.com
- Disable non-functional documentation
* Sun Dec 08 2013 firstname.lastname@example.org
- Update to version 0.7.1
+ MISC: capture meaningless argument (n_jobs=0) in Parallel
+ ENH Handles tuples, sets and Python 3's dict_keys type the same as
lists. in pre_dispatch
+ ENH: fix function caching for IPython
* Thu Oct 24 2013 email@example.com
- Require python-setuptools instead of distribute (upstreams merged)
* Sat Feb 09 2013 firstname.lastname@example.org
- Update to version 0.7.0d
* No changelog available
- Clean the specfile and remove .buildinfo file
* Wed Oct 10 2012 email@example.com
- Add Group field in doc package for SLE 11
* Wed Sep 05 2012 firstname.lastname@example.org
- Initial version