首页  >  文章  >  后端开发  >  当 OMP_NUM_THREADS=1 失败时如何限制 Numpy 的线程利用率?

当 OMP_NUM_THREADS=1 失败时如何限制 Numpy 的线程利用率?

Patricia Arquette
Patricia Arquette原创
2024-10-19 12:28:02645浏览

How to Limit Numpy's Thread Utilization When OMP_NUM_THREADS=1 Fails?

限制 Numpy 中的线程数

尽管尝试设置 OMP_NUM_THREADS=1,但在某些情况下,Numpy 可能会持续使用多个线程。为了确定此问题的根源并实现矩阵乘法所需的线程数为 1,让我们深入研究一下控制线程使用的环境变量。

Numpy 的配置(可通过 numpy.show_config() 检索)揭示了使用情况BLAS(基本线性代数子例程)库的一部分,用作计算引擎。然而,识别 Numpy 使用的特定 BLAS 实现可能具有挑战性。

为了限制 BLAS 中使用的线程数量,我们可以在执行脚本之前设置环境变量。常用的库包括 OpenBLAS、MKL(英特尔数学内核库)和 NUMEXPR:

export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export OMP_NUM_THREADS=1

请记住,在运行脚本之前设置这些变量至关重要。如果多线程仍然存在,则可能表明多线程是从不同来源引入的,例如脚本中的附加库或代码。

以上是当 OMP_NUM_THREADS=1 失败时如何限制 Numpy 的线程利用率?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn