9.1. 快速入门:构建MPI应用程序

尽管本节省略了许多细节,但它提供的示例很可能适用于多种环境。

警告

请注意,本节为“快速入门”——其目的并非详尽无遗,也不涵盖如何在所有支持的环境中构建Open MPI。因此,以下示例在您的实际环境中可能无法完全按所示方式运行。

如有必要,请查阅本章其他部分以获取更多详细信息。

Open MPI 提供了用于编译 MPI 和 OpenSHMEM 应用程序的"包装器"编译器:

C

mpicc(1), oshcc(1)

C++

mpic++(1), oshc++(1) (以及 mpiCC(1)oshCC(1) 如果你的文件系统区分大小写)

Fortran

mpifort(1), oshfort(1)

警告

传统的名称mpif77mpif90仍然存在,它们只是mpifort包装编译器的符号链接。强烈建议用户更新所有构建脚本,使用mpifort替代mpif77mpif90

目的是让用户能够简单地调用Open MPI包装编译器,而非他们通常使用的语言编译器。例如,构建MPI C应用程序时,使用mpicc替代通常的C编译器:

shell$ mpicc hello_world_mpi.c -o hello_world_mpi -g
shell$

对于OpenSHMEM应用程序:

shell$ oshcc hello_shmem.c -o hello_shmem -g
shell$

所有包装器编译器的作用只是在命令行中添加各种编译器和链接器标志,然后调用后端编译器。具体来说:包装器编译器根本不解析源代码;它们仅仅是命令行操作工具,与实际程序的编译或链接无关。最终结果是一个正确链接到所有相关库的MPI可执行文件。

警告

仅仅在链接行中添加-lmpi并假设您将获得一个有效的Open MPI可执行文件是绝对不够的