【问题标题】:How to get mpif90 compiler for OpenSUSE Leap 15.0?如何为 OpenSUSE Leap 15.0 获取 mpif90 编译器?
【发布时间】:2020-02-02 10:56:18
【问题描述】:

我想在 OpenSUSE Leap 15.0 上运行一个程序,我必须先用 Fortran90 编译器 mpif90 编译它。不幸的是,我找不到相应发行版的 mpif90。有办法安装吗?

【问题讨论】:

标签: fortran mpi fortran90 opensuse


【解决方案1】:

您将需要包裹openmpi3-devel:

sudo zypper install openmpi3-devel

请注意,为了允许多个 Open MPI 主要版本共存,二进制文件(包括mpif90)不会进入/usr/bin,而是进入/usr/lib64/mpi/gcc/openmpi3/bin。使用 MPI 的推荐方法是获取环境脚本

. /usr/lib64/mpi/gcc/openmpi3/bin/mpivars.sh

【讨论】:

    【解决方案2】:

    从包存储库中,安装一个 MPI 实现,例如 Open MPI(我自己不使用 OpenSUSE,所以我不知道包的名称是什么,但我相信你会找到它,如果你使用包管理器的搜索功能)。这将安装编译器包装器,如 mpicc、mpifort、mpif90 等。

    编辑:编译器包装器可能位于 -dev 或 -devel 包中。在 Ubuntu 18.04 上,openmpi 编译器包装器位于“libopenmpi-dev”包中。

    【讨论】:

    • mpif90 可能由开发包提供。
    • @GillesGouaillardet:说得好。我刚刚检查过,至少在 Ubuntu 上确实如此。
    【解决方案3】:

    除了普通的/usr/lib64/mpi 位置之外,OpenSUSE 还具有 HPC 项目/环境,其中包含多种类型的 MPI 库及其版本和使用模块系统使用的编译器。

    安装包openmpi3-gnu-hpc-devel并使用启用它

    module load gnu
    module load openmpi
    

    使用后者可能就足够了。

    然后您还可以安装许多相关的库,如 FFTW3 或 HDF5,并在同一模块系统中使用它们。这将使您能够为特定的 MPI 版本 (OpenMPI 3) 和特定的编译器 (GNU - gfortran) 编译这些库,即使您同时拥有其中的几个。

    然后我的.bashrc.中有这个

    module load gnu
    module load openmpi
    module load netcdf-fortran
    module load pfftw3
    module load phdf5
    module load pnetcdf
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2021-04-09
      相关资源
      最近更新 更多