是否存在一个配置,在该配置下,numpy操作可以在多个核心/线程上运行?

时间:2014-11-26 01:30:29

标签: python numpy lapack blas

如果是的话?

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

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

我已经尝试过阅读并安装软件包但是已经弄得一团糟,所以我决定回到基础。

理想的答案是yes / no以及如果答案是肯定的,则执行此操作的功能和配置的示例。通过配置我的意思是操作系统,python / numpy / BLAS / LAPACK等版本

谢谢

1 个答案:

答案 0 :(得分:1)

稍微解除你的困惑:

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

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

export OMP_NUM_THREADS=4

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