我正在使用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
重新获得对解释器的控制?