Как разделить два пустых массива как разделяемую память и ускорить выполнение - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужно запустить метод наименьших квадратов в каждом ряду массива.Я использую модуль 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 автоматически сделает его общим объектом между параллельными потоками / процессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...