numba无法并行计算报错,求解答

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
from numba import njit, prange
import numpy as np
from time import time

@njit(parallel=True)
def func(x):
    su = 0
    for i in prange(10000):
        for j in prange(1000):
            su = su + i - j + 1 / (x[j]+1)
    return i
start=time()
a=func(np.arange(1000))
end=time()
print('Running time:'+str(end-start)+'s')
print(a)

运行结果及报错内容

Failed in nopython mode pipeline (step: convert to parfors)
Use of reduction variable 'su' other than in a supported reduction function is not permitted.
File "D:\python\final_project\test2.py", line 13, in
a=func(np.arange(1000))

我的解答思路和尝试过的方法
我想要达到的结果

现在用的 numba 是什么版本?不行换低一个版本号的 numba 试试

from numba import njit, prange
import numpy as np
from time import time


@njit()
def func(x):
    su=0
    for i in prange(10000):
        for j in prange(1000):
            su = su + i - j + 1 / (x[j] + 1)
    return su


start = time()

a = func(np.arange(1000))
print(a)
end = time()
print('Running time:' + str(end - start) + 's')

parallel=True

删除就可以运行了

img


有帮助请采纳