Как вернуть управление из JobLib Parallel? - PullRequest
0 голосов
/ 03 апреля 2019

Я запускаю несколько параллельных процессов с ноутбука Jupyter, используя joblib.Однако 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: параллельные циклы с Loky-поддержкой не могут быть вложенными ниже потоков, устанавливая n_jobs = 1 ** self._backend_args)

Как вернуть контроль над переводчиком с joblib.Parallel?

...