如何在XCode中使用mpi.h?

时间:2017-08-14 19:23:39

标签: c++ xcode parallel-processing mpi mpich

我从以下指定网站的方向安装了MPICH3.2

http://mpitutorial.com/tutorials/installing-mpich2/

我下载了tar文件并在Downloads /目录中并使用terminal安装。我想在我提交到远程计算机之前测试我的程序是否在本地计算机上运行。

问题是当我写标题#include" mpi.h" Xcode没有认识到它。如何将MPICH库添加到Xcode?或者我如何制作它以便Xcode使用mpi编译?

2 个答案:

答案 0 :(得分:2)

我个人会这样(请注意我从未在XCode中编译MPI代码 - 我是通过Makefile,CMake编写的)。

我会在某个位置安装MPI(来自消息来源) - 看一看如何操作:Running Open MPI on macOS

然后,我已经创建了超级简单的MPI代码(例如像这样)

#include <stdio.h>
#include "mpi.h"

int main(int argc, char * argv[]){
    int my_rank, p, n;

    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &p);
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);

    printf("size: %d rank: %d\n", p, my_rank);

    MPI_Finalize();
}

然后,我将使用mpicc编译(如@Gilles所述)。

> mpicc -v -o mpi ./mpi.c
> mpirun -np 4 ./mpi
size: 4 rank: 1
size: 4 rank: 2
size: 4 rank: 0
size: 4 rank: 3

选项-v会为您提供所需的所有位置。然后,我将所有这些选项都带入了XCode。

您还可以使用mpicc -show获取构建基于MPI的代码所需的标记。

事实上,它应该开箱即用。看看这里:

您需要设置包含(如图所示)

enter image description here

和MPI lib(如图所示)

enter image description here

并且,您也应该能够运行它

enter image description here

要使用mpirun让其运行,请务必设置:Product->Scheme->Edit Scheme。并且,请务必将Arguments更改为

enter image description here

Executablempirun - 它应该位于安装了MPI的bin目录中。

enter image description here

答案 1 :(得分:1)

&#34;自然&#34;构建MPI应用程序的方法是使用MPI包装器(例如mpicc和朋友)而不是本机编译器(例如gcc / clang和朋友)。通过执行此操作,mpi.h将位于包含路径中,您不需要手动链接各种MPI库(顺便说一下MPI实现)