安装步骤:

1、下载运行mpich2-1.3.2p1-win-ia32.msi。

安装过程中,会要求设置一个passphrase。我的机器上默认的passphrase是beHappy,设置这个东西很重要,一定要记住;下面会说到为什么。

2、  安装完之后,不知道下一步怎么进行了。打开刚才安装的MPICH2的快捷方式目录,发现了一个README文件。打开之后,发现了MPICH2的使用方法介绍,于是按照其中的指示,我进行了第一个MPI并行程序的编写。

我使用的是VS2008。首先创建一个新的工程,取名为MPITest。

添加MPI库的支持:

现在工具--选项--vc++目录 添加包含文件(include)和库文件(lib)

然后在项目--属性 添加include、lib和mpi.lib

按照README中的指导,应该首先将MPI的头文件目录包含到项目中去。结果在项目属性中找了半天,也没有找到添加头文件目录的位置,只找到了包含库文件的位置,我安装MPICH2的目录为D:\Program Files\MPICH2,将MPICH2的库文件添加到如下面图1所示的位置即可。

最后才反应过来,这个工程还是空的,没有任何文件,可能跟这个有关系吧。于是,马上新建了一个Cpp文件main.cpp,将老师PPT中的例子程序拷贝进去。

  


图 1

果然,新建了这个cpp文件之后,项目属性中多出了C/C++这样一项,于是,就可以在其中设置包含文件的目录了,相应的配置如下面图2所示。



图 2

 

        设置好这些文件之后,编译程序,结果在连接的时候报错,类似于“main.obj : error LNK2019: 无法解析的外部符号_MPI_Finalize,该符号在函数_main中被引用”,这样的错误出现了六个。再看README文档,发现了这样一句话:

For C applications add mpi.lib to your target link command.

于是想到,可能需要在工程中显式添加mpi库的支持。在下面图3所示的位置设置响应的lib之后,重新编译、连接程序,顺利通过。



图 3

 

输入以下源码:

#include <stdio.h> #include "mpi.h"   int main(int argc, char*argv[]) {        MPI_Init(&argc,&argv);      printf("helloworld\n");        MPI_Finalize();        return 0; }

运行通过。