Мне нужно запустить метод наименьших квадратов в каждом ряду массива.Я использую модуль sciki-learn joblib для параллельной обработки.Но, к сожалению, я не получаю прирост производительности, на который я надеюсь.Я думаю, это может быть из-за того, что статические матрицы копируются снова и снова.Ниже приведен мой фрагмент кода.Как я могу сделать это быстрее?
Пример кода (это только пример).Мои массивы имеют размер 50k * 10k
from sklearn.externals.joblib import Parallel,delayed
from numpy.linalg import norm,lstsq
V = np.random.rand(5,5)
W = np.random.randint(0,2,(5,5))
for i in xrange(1,max_iter+1):
U = Parallel(n_jobs=-1)(delayed(lstsq)(np.dot(V,np.diag(Wu)), np.dot(V[u],np.diag(Wu)),rcond=None) for u,Wu in enumerate(W))
И V, и W остаются постоянными для каждой операции строки.Я надеялся, что sklearn автоматически сделает его общим объектом между параллельными потоками / процессом.