Производительность вложенного цикла в Numba
По соображениям производительности я начал использовать Numba помимо NumPy. Мой алгоритм Numba работает, но я чувствую, что он должен быть быстрее. Есть один момент, который замедляет его. Вот фрагмент кода:
@nb.njit
def rfunc1(ws, a, l):
gn = a**l
for x1 in range(gn):
for x2 in range(gn):
for x3 in range(gn):
y = 0.0
for i in range(1, l):
if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and
numpy.all(ws[x1][i:l] == ws[x3][i:l]):
y += 1
if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and
numpy.all(ws[x1][i:l] == ws[x3][i:l]):
y += 1
По моему мнениюif
Команда замедляет его. Есть ли способ лучше? (То, чего я пытаюсь достичь, связано с ранее опубликованной проблемой:Подсчет возможностей для одиночных кроссоверов) ws
размер массива NumPy(gn, l)
содержащий0
и1
«s