首页 > 解决方案 > 如何使用 joblib 的 Parallel 函数来并行化 Python 中不返回任何内容的函数

问题描述

我正在尝试并行化一个不返回任何内容的函数,它只是更新现有的数据结构。它应该像这样工作

class Klas():
    def __init__(self):
        self.x = np.empty([4, 1])

    def foo(self, i):
        self.x[i] = np.random.uniform(0, 1)
        return self

    def loo(self):
        Parallel(n_jobs=4)(delayed(self.foo)(i) for i in range(4))

那么当我跑步时

object = Klas()
object.loo()
object.x

我应该得到 numpy 数组,其中包含 0 到 1 之间的四个随机数。但是,调用方法 loo() 不会更新数组 x。可能是什么问题呢?

标签: pythonoopparallel-processingjoblib

解决方案


推荐阅读