#macos #mpi #gfortran #macos-big-sur
#macos #mpi #gfortran #macos-big-sur
Вопрос:
Недавно я обновился до Big Sur, и у меня возникли проблемы с запуском кода в mpi. Я запускаю тестовый код со следующей командой:
mpif90 -o test.f90 ./test
Я получаю следующую ошибку:
-bash: mpif90: command not found
Я обновил homebrew и macports, но не могу решить проблему. Я подозреваю, что это как-то связано с неправильным именем пути где-то. Есть идеи? Спасибо.
@Oo.oO Спасибо. При настройке сборки gcc (по ссылке в вашем комментарии) командой:
../configure --prefix=$HOME/opt/usr/local/gcc/gcc-9.2.0
--enable-checking=release
--enable-languages=c,c ,fortran
--disable-multilib
--with-sysroot=$HOME/opt/usr/local/gcc_system_root
--program-suffix=-9.2.0
возникает следующая ошибка:
configure: error: in `$HOME/opt/src/gcc/gcc-9.2.0/build':
configure: error: C compiler cannot create executables
Я обновил Xcode (версия 12.3). Есть мысли? Спасибо.
Комментарии:
1. Вы всегда можете попытаться собрать все из исходных текстов (я имею в виду MPI): owsiak.org /…
2. сначала о главном. Как вы установили GNU compilers MPI? это от brew? если да, то что делает
which gfortran
иwhich mpicc
возвращает?3. @GillesGouaillardet Я установил openmpi версии 2.0.2 с последними обновлениями homebrew.
which gfortran
возвращает/usr/local/bin/gfortran
иwhich mpicc
возвращает командную строку.4. это странно, поскольку brew предоставляет открытый MPI
4.0.5
. Я бы попытался удалить и переустановитьopen-mpi
с помощью brew.
Ответ №1:
Проблема заключалась в том, что были другие /bin/
каталоги, в которых были более старые версии gcc и openmpi. При обновлении новые файлы из /lib/
каталогов необходимо было передавать в /Cellar/
каталоги. Проблема устранена при первом удалении всех старых macports и компиляторов с неправильными файлами и / или путями как sudo port -fp uninstall installed
, и brew uninstall openmpi
, и brew uninstall gcc
. Затем переустановите новые компиляторы homebrew brew install gcc
, brew install openmpi
. Это дает правильные пути с настроенными файлами при отправке файла make или, в данном случае, с помощью mpif90
команды.