我目前正在尝试使用一个简单的例子来并行化循环与cython的prange.我已经安装了OpenBlas 0.2.14,允许使用openmp并编译了numpy 1.10.1和scipy 0.16来自openblas的源代码.为了测试库的性能,我遵循这个例子:http://nealhughes.net/parallelcomp2/.要定时的函数从站点复制:
import numpy as np
from math import exp
from libc.math cimport exp as c_exp
from cython.parallel import prange,parallel
def array_f(X):
Y = np.zeros(X.shape)
index = X > 0.5
Y[index] = np.exp(X[index])
return Y
def c_array_f(double[:] X):
cdef int N = X.shape[0]
cdef double[:] Y = np.zeros(N)
cdef int i
for i in range(N):
if X[i] > 0.5:
Y[i] = c_exp(X[i])
else:
Y[i] = 0
return Y
def c_array_f_multi(double[:] X):
cdef int N …Run Code Online (Sandbox Code Playgroud)