根据主题中的错误,修复方法是什么?
环境:
- Python 3.9或3.10
- windows 10 x64
使用joblib进行并行处理时出错:
result_chunks = joblib.Parallel(n_jobs=njobs)(joblib.delayed(f_chunk)(i) for i in n_chunks)
根据主题中的错误,修复方法是什么?
环境:
使用joblib进行并行处理时出错:
result_chunks = joblib.Parallel(n_jobs=njobs)(joblib.delayed(f_chunk)(i) for i in n_chunks)
2条答案
按热度按时间qyuhtwio1#
这个问题是超时时间太短。当有大量数据要传递给子进程时,它会在内部超时。这个警告是良性的,joblib会在内部恢复,结果(根据我的经验)是准确和完整的。
为了修复,增加超时,我使用这个:
或者,找出一种方法来减少必须序列化并发送到子进程的数据量。
更新日期:2022年4月3日
如果
n_jobs
非常高,导致CPU总使用率接近100%(例如95%),则无论是否超时,也会发生这种情况。修复方法是减少njobs,使CPU总使用率下降到85%。更新日期:2022年4月3日
当我在每个作业中使用Polars时,无论超时和CPU总使用率如何,都会发生这种情况。当我切换回Pandas时,似乎没有发生这种情况。这可能是因为Polars更高效,使用更多的CPU,或者(如错误所述)由于内存泄漏(不太可能)。
jv4diomz2#
把
joblib
从1.1.0版升级到1.2.0版对我来说很管用!(timeout
解决方案对我来说没有任何改变)