限制 NumPy 中的线程数
NumPy 利用 BLAS 等多 CPU 库来进行高效的数值计算。但是,您可能会遇到默认线程数 (4) 过多的情况。为了解决这个问题,您可以利用特定的环境标志。
在执行 NumPy 脚本之前,请考虑设置以下标志:
export MKL_NUM_THREADS=1 export NUMEXPR_NUM_THREADS=1 export OMP_NUM_THREADS=1
MKL_NUM_THREADS 标志设置英特尔数学允许的线程数内核库(MKL)。 NUMEXPR_NUM_THREADS 控制 NumExpr 的线程,用于快速数值计算。最后,OMP_NUM_THREADS 管理 OpenMP 使用的线程计数,OpenMP 是 C/C /Fortran 并行编程的行业标准。
设置这些标志可确保 NumPy 中的所有库都遵守严格的线程限制 1。可以增强矩阵乘法和其他无法从多线程中受益的操作的性能。
请注意,如果您在设置上述标志后遇到问题,则可能表明代码库中的其他地方引入了多线程。在这种情况下,需要进行额外的调查。
以上是如何限制 NumPy 中的线程数以获得最佳性能?的详细内容。更多信息请关注PHP中文网其他相关文章!