如何用 gfortran 而不是 ifort 编译 MPI?
How to compile MPI with gfortran instead of ifort?
之前有人问过类似的 question,但答案并没有直接解决我遇到的问题。我正在尝试在 HPC 机器上编译基于 fortran 的应用程序。机器同时安装了 gfortan
和 ifort
并且在路径中。当我使用 MPI(Open MPI 1.8.8)包装器 mpifort
时,它会自动使用 ifort
,这很好。但是出于某种原因,我想改用 gfortran
。我怎样才能确保 mpifort
包装器默认为 gfortran
而不是 ifort
?
Open MPI mpifort
使用的默认 Fortran 编译器是从 $ompi_root/share/openmpi/mpifort-wrapper-data.txt
读取的。构建过程将构建库时选择的 Fortran 编译器存储在那里。它可以通过设置 OMPI_FC
环境变量来覆盖。这同样适用于 C 包装器 (OMPI_CC
) 和 C++ 包装器 (OMPI_CXX
)。
示例:
$ mpifort -showme:command
ifort
$ env OMPI_FC=gfortran mpifort -showme:command
gfortran
请记住,与 C 和 C++ 不同,英特尔在 Fortran ABI 上不同意 GCC。
mpifort -fc=gfortran main.f90 (or other files you want to compile)
也可以帮助更改编译器。
之前有人问过类似的 question,但答案并没有直接解决我遇到的问题。我正在尝试在 HPC 机器上编译基于 fortran 的应用程序。机器同时安装了 gfortan
和 ifort
并且在路径中。当我使用 MPI(Open MPI 1.8.8)包装器 mpifort
时,它会自动使用 ifort
,这很好。但是出于某种原因,我想改用 gfortran
。我怎样才能确保 mpifort
包装器默认为 gfortran
而不是 ifort
?
Open MPI mpifort
使用的默认 Fortran 编译器是从 $ompi_root/share/openmpi/mpifort-wrapper-data.txt
读取的。构建过程将构建库时选择的 Fortran 编译器存储在那里。它可以通过设置 OMPI_FC
环境变量来覆盖。这同样适用于 C 包装器 (OMPI_CC
) 和 C++ 包装器 (OMPI_CXX
)。
示例:
$ mpifort -showme:command
ifort
$ env OMPI_FC=gfortran mpifort -showme:command
gfortran
请记住,与 C 和 C++ 不同,英特尔在 Fortran ABI 上不同意 GCC。
mpifort -fc=gfortran main.f90 (or other files you want to compile)
也可以帮助更改编译器。