Переопределить BLAS с помощью LD_LIBRARY_PATH - PullRequest
0 голосов
/ 31 января 2020

Я обычно переключаюсь между версиями blas, используя sudo update-alternatives .... Однако мне нужно заставить его работать без sudo. Я пробовал несколько вариантов, но ни один из них не работает.

У меня есть следующий код 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 , но он продолжает связываться с MKL:

  • Создать символьную c ссылку из ~ / .local / alternatives / libblas.so.3-x86_64- linux -gnu в / usr / lib / x86_64- linux -gnu / openblas / libblas.so.3 и добавьте ~ / .local / альтернативы LD_LIBRARY_PATH

  • Тот же метод, что и раньше, но также добавьте его to LIBRARY_PATH

  • Компиляция с использованием следующей команды gfortran -o test test.f -L/usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 -lblas

Любая помощь будет принята с благодарностью

1 Ответ

1 голос
/ 31 января 2020

Переопределить BLAS с помощью LD_LIBRARY_PATH

Установить openblas перед «Intel MKL Blas» в пути поиска:

Обычный метод - просто установить «предпочтительный» "сначала в LD_LIBRARY_PATH при компиляции:

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