这似乎太简单了,无法解决,我确定我只是在错误的地方寻找。这个问题困扰了我一段时间,所以这里...
像scipy.special.j1这样的函数可以在使用多个内核的numpy数组上执行吗?
from scipy.special import j1
import numpy as np
tester = np.random.randn(1000,1000)
out = j1(tester)
在ipython中运行一个timeit并观看系统监视器显示只有1个核心运行。 numpy和scipy是通过conda安装的,并且scipy .__ config__输出中有'mkl_rt'和'pthread'库。
运行np.exp使用4个可用内核。
out = np.exp(tester)
如果可能的话,最好将所有可用的核用于j1计算,但是4肯定比1好。这是否简单呢?
答案 0 :(得分:0)
不是纯Python。
您可以将cython_special
的Cython接口与prange
结合使用。