【问题标题】:making scipy.special functions evaluate in parrellel使 scipy.special 函数并行计算
【发布时间】:2018-09-08 04:17:23
【问题描述】:

这似乎太简单了,无法解决,我确定我只是没有找对地方。这个问题困扰了我一段时间,所以这里......

像 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 好。这是否简单?

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

    不是纯python。

    您可以将cython_special 的Cython 接口与prange 结合使用。

    【讨论】:

      猜你喜欢
      • 2019-02-18
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2021-03-01
      相关资源
      最近更新 更多