用 LD_LIBRARY_PATH 覆盖 BLAS

Override BLAS with LD_LIBRARY_PATH

我通常使用 sudo update-alternatives ... 在 blas 版本之间切换。但是,我需要让它在没有 sudo 的情况下工作。我尝试了几种选择,但 none 似乎有效。

我有以下 FORTRAN 代码来测试我是否已成功切换库

      PROGRAM BLASTEST
         IMPLICIT NONE

         CALL MKL_Set_Num_Threads(1)
         CALL openblas_set_num_threads(1)

      END PROGRAM BLASTEST

我将 intel MKL 设置为首选选项,因此当我使用以下命令进行编译时,会导致无法找到 openblas_set_num_threads 的错误。

gfortran -o test test.f -lblas

我已尝试使用以下方法将其改为使用 openblas 使其达到 link,但它仍然使用 MKL linking:

如有任何帮助,我们将不胜感激

Override BLAS with LD_LIBRARY_PATH

在搜索路径的"Intel MKL Blas"之前设置openblas

常用的方法就是在编译的时候在LD_LIBRARY_PATH中先设置"the preferred":

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/openblas:$LD_LIBRARY_PATH && [other command]