【问题标题】:Is there a configuration under which a numpy operation will work on more than a single core/thread?是否有一种配置可以使 numpy 操作在多个内核/线程上工作?
【发布时间】:2014-11-26 01:30:28
【问题描述】:

如果有,是哪个?

我感兴趣的具体例子是np.einsum

我真的对 OPENBLAS / BLAS / LAPACK / ATLAS / INTEL MKL 提供的服务感到困惑。

我已尝试阅读有关此内容并安装软件包,但结果一团糟,因此我决定回归基础。

理想的答案是“是”/“否”,如果答案是“是”,则提供执行此操作的功能和配置示例。通过配置,我的意思是操作系统,python / numpy / BLAS / LAPACK 等的版本

谢谢

【问题讨论】:

    标签: python numpy lapack blas


    【解决方案1】:

    为了解除你的困惑:

    • BLAS 和 LAPACK 是标准化的 API(您可以将它们视为头文件)
    • OpenBLAS、ATLAS 和 MKL 提供了这些 API 的优化实现。如果你有 MKL,你应该被覆盖,否则我推荐 OpenBLAS 而不是 ATLAS。

    如果没有另行通知,BLAS 库将检查某些环境变量以决定使用多少线程。如果没有定义更多特定变量,大多数库将默认为OMP_NUM_THREADS,因此运行例如4个线程,试试

    export OMP_NUM_THREADS=4
    

    在开始您的程序之前。有关如何控制线程的更多详细信息,请查看您的 BLAS 实现手册/文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 2019-05-31
      相关资源
      最近更新 更多