Я использую нечто похожее на следующее распараллеливание для цикла в течение двух матрицPython, распараллеливание с joblib: Задержка с несколькими аргументами
from joblib import Parallel, delayed
import numpy
def processInput(i,j):
for k in range(len(i)):
i[k] = 1
for t in range(len(b)):
j[t] = 0
return i,j
a = numpy.eye(3)
b = numpy.eye(3)
num_cores = 2
(a,b) = Parallel(n_jobs=num_cores)(delayed(processInput)(i,j) for i,j in zip(a,b))
, но я получаю следующее сообщение об ошибке: Слишком много значений для распаковки (ожидается 2)
Есть ли способ вернуть 2 значения с задержкой? Или какое решение вы бы предложили?
Кроме того, бит OP, существует более компактный способ, например, следующий (который фактически ничего не модифицирует) для обработки матриц?
from joblib import Parallel, delayed
def processInput(i,j):
for k in i:
k = 1
for t in b:
t = 0
return i,j
Я хотел бы избежать использования has_shareable_memory в любом случае, чтобы избежать возможных плохих взаимодействий в реальных сценариях и более низкие представления (?)