首页 > 解决方案 > 如何在 Python 中将输入数据动态共享到并行进程

问题描述

我有几个处理相同数据的并行进程。所述数据由 100.000 多个数组组成(全部存储在 HDF5 文件中,每个数组有 90.000 个值)。

目前,每个进程都单独访问数据,并且它运行良好,因为 HDF5 文件支持并发读取......但最多只能有一定数量的并行进程。在访问数据的 14-16 个进程以上,我看到效率下降。我期待它(我认为同一文件上的 I/O 操作太多),但我不知道如何正确纠正这个问题。

由于所有进程都使用相同的数据,因此最好让主进程读取文件,加载数组(或一批数组),并将其提供给正在运行的并行进程,而无需停止它们。如果你愿意的话,一种动态共享内存。

有什么办法可以正确地做到这一点并解决我的可扩展性问题?

我使用原生的“多处理”Python 库。

谢谢,

胜利者

标签: pythonpython-3.xiomultiprocessingpython-multiprocessing

解决方案


推荐阅读