multiprocessing.Pool.map()
在每个输入值很大(例如 500 MB)但输入值通常包含相同的大对象的情况下并行计算许多结果是否有效?恐怕工作方式multiprocessing
是将每个输入值的腌制版本发送到池中的每个工作进程。如果不执行优化,这将意味着为每个输入值发送大量数据map()
。是这样吗?我很快看了一下multiprocessing
代码,但没有发现任何明显的东西。
更一般地说,你会推荐什么简单的并行化策略来做一个map()
说 10,000 个值,每个值都是一个元组(vector, very_large_matrix)
,其中向量总是不同的,但是只有 5 个不同的非常大的矩阵?
PS:大输入矩阵实际上是“渐进式”出现的:首先发送 2,000 个向量与第一个矩阵一起发送,然后发送 2,000 个向量与第二个矩阵一起发送,依此类推。