首页 > 解决方案 > 使用 joblib 的全局对象

问题描述

我想更好地了解joblib如何处理全局对象。考虑以下简单示例。

from joblib import Parallel, delayed

class Engine:
  def f(self, x):
    return x+2

engine = Engine()

def run_engine(x):
    return engine.f(x)

def main():
    res = Parallel(n_jobs=5)(delayed(run_engine)(x) for x in range(0,100))
    print(res)

if __name__ == '__main__':
    main()

engine反对会发生什么?它会被所有衍生的进程复制或以某种方式共享吗?

如果抄袭,有没有序列化要求?n_jobs每次调用将复制多少次,次或一次run_engine?是否复制了范围内的所有对象,或者joblib 是否以某种方式神奇地推断出哪些是必要的?

标签: pythonjoblib

解决方案


推荐阅读