【问题标题】:How to compile MPI with gfortran instead of ifort?如何用 gfortran 而不是 ifort 编译 MPI?
【发布时间】:2019-03-30 03:55:46
【问题描述】:

之前有人问过类似的question,但答案并没有直接解决我遇到的问题。我正在尝试在 HPC 机器上编译基于 fortran 的应用程序。该机器同时安装了gfortanifort 并在路径中。当我使用 MPI(Open MPI 1.8.8)包装器mpifort 时,它会自动使用ifort,这很好。但出于某种原因,我想改用gfortran。如何确保 mpifortwrapper 默认为 gfortran 而不是 ifort

【问题讨论】:

  • 除非您提供 MPI 实现名称和最终版本,否则这个问题几乎没有意义。但请注意,英特尔 Fortran 和 GNU Fortran 具有不兼容的模块文件格式并使用它们自己的 Fortran 运行时库,如果 MPI 库是使用英特尔 Fortran 构建的,您将无法从 GNU Fortran(F77 接口,又名 @ 987654330@,可能有效,但强烈建议不要使用它)。

标签: mpi gfortran


【解决方案1】:

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。

【讨论】:

    【解决方案2】:

    mpifort -fc=gfortran main.f90 (or other files you want to compile)也可以帮助改变编译器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多