我有一个使用scipy.integrate.quad()的程序。当我使用它时,我注意到它使用了我PC上的所有内核,我不想这样,因为我想在多个内核上并行运行这个脚本。有什么方法可以限制这个函数吗?
在导入scipy和numpy之前,我已经尝试过使用以下命令限制它:
import os
import sys
os.environ.update(
OMP_NUM_THREADS='1',
OPENBLAS_NUM_THREADS='1',
NUMEXPR_NUM_THREADS='1',
MKL_NUM_THREADS='1',
)
不幸的是,这也没有帮助。还有其他的事情我可以尝试吗?我的scipy使用openblas的情况下,这是相关的。
2条答案
按热度按时间d4so4syb1#
当你的计算机使用什么核心时,是由你的操作系统的底层处理的。没有办法修改一个进程使用的核心数量。如果你想并行运行程序多次,你应该使用多线程,让计算机自己处理工作负载
bvn4nwqk2#
Quad本身不应该使用并行性。你要集成的函数是什么?(如果它有线性代数,它可能是默认使用所有内核的openblas等)