当调用执行文件写入且没有显式返回的函数时,多个处理池卡在第一次迭代中

Mulitprocessing pool stuck on the first iteration when calling a funciton that does file write and does not have an explicit return

提问人:Sudoh 提问时间:11/2/2023 最后编辑:Sudoh 更新时间:11/2/2023 访问量:28

问:

我在 的 .过去,对于与代码设置非常相似的东西,如下图所示,遍历整个列表(我可能是错的,也许有其他东西调用了列表中的其余项目?),但这里似乎并非如此。这里的代码有效,但仅适用于前 16 项,16 是我机器上的内核数。mulitprocessingpoolpool.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 替代方案)和一个路径。subsvaex

前 16 次处决有一个相关的警告,我想知道这是否令人窒息.这将是一个简单的问题,但进行简单的健全性检查不会产生相同的警告。vaexexport_taskpool.mapsample_table.export_hdf5(sample_path)

停滞是因为函数不返回输出而只执行文件 I/O 吗?或者这是因为仅在池中生成的警告?poolvaex

IO 多处理 VAEX

评论


答: 暂无答案