小编Mar*_*Gal的帖子

Cython prange较慢,4线程然后有范围

我目前正在尝试使用一个简单的例子来并行化循环与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)

python numpy cython openblas

4
推荐指数
1
解决办法
3179
查看次数

标签 统计

cython ×1

numpy ×1

openblas ×1

python ×1