【发布时间】:2018-07-18 13:57:56
【问题描述】:
所以我有一批 1000 个任务,我使用 parmap/python 多处理模块分配给 8 个内核(双至强机器 16 个物理内核)。目前这使用同步运行。
问题在于,通常其中 1 个核心远远落后于其他核心,并且在所有其他核心完成工作后仍有几项工作/任务要完成。这可能与核心速度(较旧的计算机)有关,但更有可能是由于某些任务比其他任务更困难 - 因此获得稍微困难的工作的 1 个核心变得滞后......
我在这里有点困惑——但这就是异步并行化的作用吗?我之前尝试过使用它,但是因为这一步是一个非常大的处理步骤的一部分——不清楚如何创建一个屏障来强制程序等待所有异步进程完成。
感谢任何类似问题/答案的建议/链接。
[编辑]澄清一下,这些进程可以独立运行,它们都将数据保存到磁盘并且不共享变量。
【问题讨论】:
标签: python synchronization multiprocessing pool