Grg*_*Grg 6 python parallel-processing import multiprocessing joblib
我正在使用joblib并行化我的 python 3.5 代码。
如果我做:
from modules import f
from joblib import Parallel, delayed
if __name__ == '__main__':
Parallel( n_jobs = n_jobs,backend = "multiprocessing")(delayed(f)(i) for i in range( 10 ))
Run Code Online (Sandbox Code Playgroud)
代码不起作用。反而:
from joblib import Parallel, delayed
def f( i ):
# my func ...
if __name__ == '__main__':
Parallel( n_jobs = n_jobs, backend = "multiprocessing")(delayed(f)(i) for i in range(10))
Run Code Online (Sandbox Code Playgroud)
这有效!
有人可以解释为什么我必须将所有函数放在同一个脚本中吗?
这真的不切实际,因为在模块中有很多我编码的函数,我不想在主脚本中复制/粘贴。
小智 3
我遇到了类似的问题。当我从导入调用函数时,它只是冻结,而当我调用本地函数时,它工作正常。通过使用多线程而不是像这样的多处理来解决它
Parallel( n_jobs = n_jobs, backend='threading')(delayed(f)(i) for i in range(10))
Run Code Online (Sandbox Code Playgroud)