为什么我需要使用mpicc

为什么我需要使用mpicc,c,linux,mpi,openmpi,C,Linux,Mpi,Openmpi,我使用的是ArchLinux。在我在Windows上使用msmpi之前,我不需要提供任何特定的编译器,只需要提供通常的库,包括标志。openmpi似乎是Arch Linux上唯一可用的实现,不是吗?当我理解mpicc编译器的用途时,为什么我需要使用一个特殊的,即使它只是一个围绕gcc的包装器?我总是怀疑使用一些包装器技巧来绕过典型的方法,这就是为什么我想知道有没有一种方法可以在没有这个包装器的情况下摆脱mpicc并使用openmpi实现。首先,openmpi不是Linux上唯一可用的实现。您还可

我使用的是ArchLinux。在我在Windows上使用msmpi之前,我不需要提供任何特定的编译器,只需要提供通常的库,包括标志。openmpi似乎是Arch Linux上唯一可用的实现,不是吗?当我理解mpicc编译器的用途时,为什么我需要使用一个特殊的,即使它只是一个围绕gcc的包装器?我总是怀疑使用一些包装器技巧来绕过典型的方法,这就是为什么我想知道有没有一种方法可以在没有这个包装器的情况下摆脱mpicc并使用openmpi实现。

首先,openmpi不是Linux上唯一可用的实现。您还可以使用MPICH、英特尔MPI等

其次,对于任何MPI实现,您不必使用编译器包装器,只要这样做,编译代码就更简单了。如果您愿意,欢迎您展开包装并将所有适当的内容放在命令行上。根据您的实现,有多种方法可以实现这一点

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


更新:我原本应该指出这一点。强烈建议只使用包装器。这些实现会不时地改变这些包装器的功能,如果您不使用它们,可能会导致您的一切崩溃。因此,除非你有很好的理由不这样做,否则使用它们会更安全。如果你不信任他们,就随时去看看他们。所有代码都是开源的。

您可以查看mpicc脚本并尝试了解它的功能。然后创建自己的启动程序脚本,使用最少且易于理解的代码features@HEKTO事实上,mpicc是一个二进制文件,而不是一个脚本。是的,我明白了——在我的机器上,它符号链接到二进制opal_包装器。对不起,把你弄糊涂了