在我提交错误之前,我想问一下是否有人可以确认 Ubuntu(不限于 16.04)中的 (lib)ATLAS 软件包(libatlas3-base)是否仅支持多线程?并且没有办法启用单线程行为(例如使用某些发行版提供的 libsatlas)?
我遇到的问题是,如果我在本地的 MPI 程序中使用 ubuntu 提供的 ATLAS 库,则在每个 MPI 进程中,ATLAS 例程都会使用所有可用的 CPU。这会导致机器严重过载。
我认为在 Ubuntu 软件包中提供 ATLAS 的单线程变体对于同时运行利用 ATLAS 的多个进程非常有帮助。
答案1
显然,无法在运行时更改 Atlas 使用的最大线程数,只能在构建时更改:http://math-atlas.sourceforge.net/faq.html#tnum
OPENBLAS_NUM_THREADS=1
例如,OpenBLAS 可以通过设置为环境变量。