В некоторых случаях возможно автоматически параллелизировать циклы с помощью Numba, хотя это только работает с небольшим подмножеством Python:
from numba import njit, prange
@njit(parallel=True)
def prange_test(A):
s = 0
# Without "parallel=True" in the jit-decorator
# the prange statement is equivalent to range
for i in prange(A.shape[0]):
s += A[i]
return s
, К сожалению, кажется, что Numba только работает с массивами Numpy, но не с другими объектами Python. В теории это могло бы также быть возможно к компиляция, Python к C++ и затем автоматически параллелизирует его с помощью компилятора Intel C ++ , хотя я еще не попробовал это.