如何从Joblib Parallel取回控制权?

时间:2019-04-03 19:11:49

标签: python joblib

我正在使用joblib从jupyter笔记本启动一系列并行进程。但是,joblib.Parallel本质上迫使我在调用它的那一刻join。这对我来说是不必要的,因为进程将其结果写入磁盘,并且不返回任何内容。我想立即获得对解释器的控制,使进程继续在后台运行。我试图将对joblib.Parallel的调用包装在threading.Thread中,但结果是使所有操作顺序进行:

import threading
from joblib import Parallel, delayed

def inc(x):
    return x+1

class ParallelProcessingThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
    def run(self):
        Parallel(n_jobs=32)(delayed(inc)(x) 
            for x in range(10000000)
        )

thread = ParallelProcessingThread()
thread.start()

给我以下警告:

  

/usr/local/lib/python3.5/dist-packages/joblib/parallel.py:739:UserWarning:无法将支持背景的并行循环嵌套在线程下,设置n_jobs = 1     ** self._backend_args)

如何从joblib.Parallel重新获得对解释器的控制?

0 个答案:

没有答案