提问人:Sudoh 提问时间:11/2/2023 最后编辑:Sudoh 更新时间:11/2/2023 访问量:28
当调用执行文件写入且没有显式返回的函数时,多个处理池卡在第一次迭代中
Mulitprocessing pool stuck on the first iteration when calling a funciton that does file write and does not have an explicit return
问:
我在 的 .过去,对于与代码设置非常相似的东西,如下图所示,遍历整个列表(我可能是错的,也许有其他东西调用了列表中的其余项目?),但这里似乎并非如此。这里的代码有效,但仅适用于前 16 项,16 是我机器上的内核数。mulitprocessing
pool
pool.map()
设置如下的代码的预期行为是什么:
def export_task(item):
subject, outputPathChunk = item
subject.export_hdf5(outputPathChunk)
然后
import multiprocessing
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
pool.map(export_task,subs)
pool.close()
其中是一个 600 个项目的元组列表,每个元组是一个表(用于较大数据的 pandas 替代方案)和一个路径。subs
vaex
前 16 次处决有一个相关的警告,我想知道这是否令人窒息.这将是一个简单的问题,但进行简单的健全性检查不会产生相同的警告。vaex
export_task
pool.map
sample_table.export_hdf5(sample_path)
停滞是因为函数不返回输出而只执行文件 I/O 吗?或者这是因为仅在池中生成的警告?pool
vaex
答: 暂无答案
评论