python中的无意识多线程(scikit-learn)

我正在使用sklearn模块的混合子模块用于高斯混合模型…当我在多核系统上运行我的代码时,它使用多个核,即使我在代码中没有要求它.这是默认行为吗?更重要的是,我该如何禁用它?

谢谢

最佳答案 如果您正在使用MKL,请尝试

导出MKL_NUM_THREADS = 1

对于使用OpenBLAS的Numpy:

export OPENBLAS_NUM_THREADS = 1

对于某些版本的Numpy,建议使用以下变体:

导出NUMEXPR_NUM_THREADS = 1

必须在运行脚本之前设置环境变量(脚本本身内部的设置不具有所需的效果).要在运行时设置线程,请参阅:Set max number of threads at runtime on numpy/openblas

请参阅以下内容以确定您的numpy的设置方式:How to check blas/lapack linkage in numpy/scipy?

点赞