首页 > 解决方案 > 从 Joblib 0.16.0 使用 Parallel 时出现 BrokenProcessPool 消息 - Python

问题描述

我遇到了一种情况,当使用 joblib (v0.16.0) 的并行函数时,我的代码中有以下几行:

with parallel_backend('loky', n_jobs=8):
    lineas = Parallel(verbose=10)(delayed(apply_prior_ind_def)(g) for g in df1_merge.groupby(['S1EMP','CONTRA1']))

这里的问题是有时执行会在以下消息下失败:

BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.

此问题没有明显的追溯,因为无需对代码进行任何更改并仅重新启动终端,它有时可以重新启动执行并正确完成它。

希望有人在使用并行时遇到类似的问题,并且可以阐明它。

提前谢谢了。

使用 Spyder3 和 Python 3.6.5

标签: pythonpython-3.xparallel-processingpooljoblib

解决方案


对我有用的是同时打开 2 个终端。第一个是无法启动的,但第二个能够运行整个并行代码。


推荐阅读