Как распараллелить для l oop с обновлением переменной с помощью joblib - PullRequest
0 голосов
/ 28 января 2020

Алгоритм, который я хотел бы распараллелить, имеет следующую логику c:

initiliaze weight
for i <- 1 to n do
    work on w to get a reward r // r <- f(w)
    update w
return r

Например:

def test():
    w = [1, 1, 1, 1]
    for i in range(10):
        if i % 2 == 0:
            w = [x + 1 for x in w]
    return sum(w)

Я не знаю, как распараллелить для циклов когда в каждой итерации l oop выполняется какое-то обновление.

Я пытался сделать следующее:

def g(w, i):
    if i % 2 == 0:
        w = [x + 1 for x in w]
    return sum(w)

w = [1, 1, 1, 1]
Parallel(n_jobs=-1)(delayed(g)(w, i) for i in range(10))
...