【问题标题】:Why I need to use mpicc为什么我需要使用 mpicc
【发布时间】:2015-01-07 06:13:55
【问题描述】:

我在 Arch Linux 上。在我在 Windows 上使用 msmpi 之前,我不需要提供任何特定的编译器,只需要提供常用的库,包括标志。看起来 openmpi 是 Arch Linux 上唯一可用的实现,不是吗?我需要为此目的使用特殊的(即使它只是 gcc 的包装器)mpicc 编译器的原因是什么?我总是对使用一些包装器(典型的做法的技巧)持怀疑态度,这就是为什么我想知道有没有办法摆脱 mpicc 并在没有这个包装器的情况下使用 openmpi 实现。

【问题讨论】:

  • 您可以查看 mpicc 脚本并尝试了解它在做什么。然后使用最少且易于理解的功能创建您自己的启动器脚本
  • @HEKTO 实际上,mpicc 是二进制文件,而不是脚本。
  • 是的,我明白了——在我的机器上,它符号链接到二进制“opal_wrapper”。很抱歉让您感到困惑

标签: c linux mpi openmpi


【解决方案1】:

首先,Open MPI 并不是 Linux 上唯一可用的实现。您还可以使用 MPICH、Intel MPI 等。

其次,对于任何 MPI 实现,您不必使用编译器包装器,如果您这样做,它只会让您的代码更容易编译。如果您愿意,欢迎您自行展开包装并将所有适当的内容放在命令行上。有多种方法可以做到这一点,具体取决于您的实现。

对于 MPICH,您可以使用 mpichversion,它将向您展示 MPICH 是如何编译的,以及在调用 mpicc 时使用的任何标志。

更新:我最初应该指出这一点。强烈建议只使用包装器。有时,这些实现会改变这些包装器所做的事情,如果您不使用它们,可能会导致一切都为您破坏。因此,除非您有充分的理由不这样做,否则使用它们会更安全。如果您不信任他们,请不时检查他们。所有代码都是开源的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 2011-07-05
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多