我在多 CPU/核心机器上使用mpi4py和 openmpi 来做线性代数。我的 numpy 是使用ATLAS构建的。假设我有一台 4 核机器,我想运行一个 4 节点 python 脚本,它使用 numpy 在每个节点上执行线性代数。
如何确保 ATLAS 在每个节点中进行线性代数时不使用多个内核?当我构建 ATLAS 时,似乎没有选择将其配置为一次仅在一个内核上运行。使用 Intel MKL,我认为您可以设置 OMP_NUM_THREADS=1,并且这种行为是有保证的。有没有办法为此目的构建 ATLAS?似乎没有等效的环境变量。
我猜想在多核 CPU 的每个核心上同时运行多个 BLAS 操作并不是一个好策略。任何人都可以对此发表评论或给出经验法则,这是一个好主意还是坏主意?