如何限制scipy.integrate.quad使用的CPU内核

v440hwme  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(159)

我有一个使用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的情况下,这是相关的。

d4so4syb

d4so4syb1#

当你的计算机使用什么核心时,是由你的操作系统的底层处理的。没有办法修改一个进程使用的核心数量。如果你想并行运行程序多次,你应该使用多线程,让计算机自己处理工作负载

bvn4nwqk

bvn4nwqk2#

Quad本身不应该使用并行性。你要集成的函数是什么?(如果它有线性代数,它可能是默认使用所有内核的openblas等)

相关问题