本文介绍了限制线程数(numpy)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
似乎我的numpy库正在使用4个线程,并且设置OMP_NUM_THREADS=1
并不能阻止此操作.
It seems that my numpy library is using 4 threads, and setting OMP_NUM_THREADS=1
does not stop this.
numpy.show_config()
给了我这些结果:
atlas_threads_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib64/atlas']
define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
language = f77
include_dirs = ['/usr/include']
blas_opt_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib64/atlas']
define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
language = c
include_dirs = ['/usr/include']
atlas_blas_threads_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib64/atlas']
define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
language = c
include_dirs = ['/usr/include']
openblas_info:
NOT AVAILABLE
lapack_opt_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib64/atlas']
define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
language = f77
include_dirs = ['/usr/include']
所以我知道它正在使用blas,但是我不知道如何使它使用1个线程进行矩阵乘法.
So I know it is using blas, but I can't figure out how to make it use 1 thread for matrix multiplication.
推荐答案
尝试设置以下所有内容:
Try setting all of the following:
export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export OMP_NUM_THREADS=1
有时候看到确切引入多线程的地方有些棘手.
Sometimes it's a bit tricky to see where exactly multithreading is introduced.
这篇关于限制线程数(numpy)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!