Распараллеливание матричных вычислений с помощью Numba
Я пытаюсь распараллелить следующую функцию в Python 3.6:
def get_Q(predictors, d):
Q = 0.
for i in range(len(predictors)):
for j in range(i+1, len(predictors)):
ci = predictors[i,:]
cj = predictors[j,:]
Q += product_cols(ci, cj, d[i], d[j])
return Q
где:
predictors[,]
является входным массивом с n
- ряды и p
-функции иd[]
является n
-размерный массив.
Функция product_cols()
определяется как:
def product_cols(ci, cj, di, dj):
c = ci-cj
return np.matmul(np.transpose(np.matrix(c)), np.matrix(c))*((di-dj)**2)
где:ci[]
, cj[]
находятся p
-размерные массивы иdi, dj
настоящие числа.
Может ли кто-нибудь помочь мне просто распараллелить это?