У меня есть такой тестовый код:
import numpy as np
from numba import njit, prange
import random
def func():
a = np.empty(0)
for i in range(10):
b = np.arange(np.random.randint(10))
a = np.concatenate((a, b))
print(len(b), ' / ', len(a))
func()
Он работает, как ожидалось:
3 / 3
6 / 9
5 / 14
8 / 22
9 / 31
6 / 37
9 / 46
5 / 51
3 / 54
9 / 63
Если я скомпилирую с Numba, добавив декоратор @njit(parallel=True)
, он перестанет работать, потому что Numba распараллеливает этот l oop, что вызывает проблемы:
2 / 0
1 / 0
2 / 0
7 / 0
0 / 0
3 / 0
2 / 0
5 / 0
7 / 0
2 / 0
В моем реальном коде в этой функции есть еще l oop, который использует prange, поэтому я хочу, чтобы parallel = True для всей функции. Но я не хочу этого для этого l oop.
Как этого избежать?