Я пытаюсь решить ряд независимых неотрицательных задач наименьших квадратов. Мои матрицы действительно огромные и могут иметь 15K строк и 15K столбцов.
Я использую следующий код для параллельного запуска. Но, к сожалению, это продолжается уже 2 недели. Я запускаю этот код на машине с 256 ГБ ОЗУ и 24 ядрами.
from scipy.optimize import nnls
Parallel(n_jobs=-1)(delayed(nnls)(np.dot(A.T,np.dot(np.diag(Wu),A))+lmbda*I, np.dot(X[u],np.dot(np.diag(Wu),A))) for u,Wu in enumerate(W))
Я могу подождать 2 дня, но 2 недели - это слишком много.
Есть ли в любом случае я могу получить лучшее ускорение? Я в порядке с использованием любых других пакетов.