【问题标题】:Is it possible to compile pgplot with mpif90?是否可以用 mpif90 编译 pgplot?
【发布时间】:2016-06-08 19:11:18
【问题描述】:

我正在尝试在 Linux 中使用 mpif90 编译 pgplot。我可以用 gfortran 和 g77 编译 pgplot。但是,我需要它与另一个用 mpif90 编译的程序兼容。不幸的是,我无法使用 gfortran 重新安装其他程序(不是 pgplot)。有没有办法用mpif90编译pgplot?

编辑:我使用 mpif90 -v 检查编译器。它是 pgf90。我不知道 mpif90 是一个包装器......对不起。我会尝试用pgf90编译它。

【问题讨论】:

  • 尝试输入mpif90 --version,这将显示当您使用mpif90 编译时实际使用的编译器+版本。如果这与您最初用于编译 pgplot 的内容相匹配,那么您应该没问题。如果您运行mpif90 -show,那么您将看到实际使用的命令(例如,您可以想象到处都用该命令替换 mpif90)。
  • 我不明白你的问题。您是在问如何在执行configure 时更改编译器。正如@d_1999 所说,mpif90 在您的计算机上只是 gfortran 是一个不错的选择,尽管它可能是其他东西,然后将其用于 pgplot。
  • @VladimirF 我没有意识到 mpif90 是一个包装器。我将尝试“在引擎盖下”使用编译器,如果我无法解决它,我会问另一个问题。谢谢~~

标签: plot fortran


【解决方案1】:

mpif90(和mpifort)编译器实际上只是包装器,它使用一组额外的标志调用“标准”编译器,以确保自动链接正确的 mpi 库等。您通常可以运行mpif90 -show 以查看实际使用的命令。例如在我看到的本地机器上运行它

> mpif90 -show
/usr/bin/gfortran -I/path/to/openmpi/include -fexceptions -pthread -I/path/to/openmpi/lib64 \
    -Wl,-rpath -Wl,/path/to/openmpi/lib64 -Wl,--enable-new-dtags -L/path/to/openmpi/lib64 -lmpi_usempi -lmpi_mpifh -lmpi

这表明 mpif90 正在使用系统 gfortran 编译器“底层”。

要明确回答您的问题,只要您可以使用 mpif90 使用“幕后”的编译器编译 pgplot,那么您通常也应该能够使用 mpif90 编译 pgplot。 但是只要mpif90 包装的编译器与您已经用来构建 pgplot 的编译器相匹配,那么您可能不需要再次使用mpif90 显式编译 pgplot。

使用 mpif90 实际构建 pgplot 需要查看 pgplot 构建系统以及如何设置编译器。快速浏览一下,您似乎需要设置出现在 sys_<type>/*.conf 文件中的 FCOMPL 变量。 (如果这实际上是您问题的重点,那么您可能希望对其进行编辑以明确这一点)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2012-12-12
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多