MPICH2安装与运行报告(Win7和Ubuntu)

这学期选的一门课的一个小作业,《计算科学与工程中的并行编程技术》;配环境的时候走了一些意想不到的弯路,贴出来给大家分享:

MPI安装于运行报告

学号:**    姓名:**

本机运行环境:

机器型号:联想ideapad Y460

CPU:Intel Core i5 M430主频:2.27Ghz (双核四线程)

运行内存(RAM):2GB

操作系统:Windows 7(32位)

程序开发环境:Visual Studio 2008

MPI版本:

直接使用老师给的mpich2-1.3.2p1-win-ia32安装程序。

详细安装步骤:

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

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

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

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

添加MPI库的支持:

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

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

MPI安装与运行报告(Win7和Ubuntu)

图 1

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

MPI安装与运行报告(Win7和Ubuntu)

图 2

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

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

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

MPI安装与运行报告(Win7和Ubuntu)

图 3

然后直接编译运行程序,出现了如下面图4所示的界面,表明该程序只在本机进行了运行,尚未真正并行执行。

MPI安装与运行报告(Win7和Ubuntu)

图 4

然后按照README和网上的指示,安装完MPICH2之后,系统中应该会出现一个名为smpd的服务进程。我多次重新安装了MPICH2,用任务管理器查看系统中的进程,始终没有发现smpd这个进程;在安装目录下找到该程序,直接双击运行也失败。在此情况下,运行并行程序时,会出现如下的错误提示:”Error: No smpd passphrase specified through the registry or .smpd file, exiting.”,如下面图5所示。

MPI安装与运行报告(Win7和Ubuntu)

图 5

由于交作业时间紧迫,白天还要工作,我实在是没有时间研究解决问题了。于是临时决定转战Linux,下载并用Wubi安装了Ubuntu 10.10。具体安装步骤见后面的部分。后来上课的时候,清华的一个同学成功在Win7环境下把MPICH2配好了,我就去讨教了一下。原来,这个是需要用管理员账户,启动命令行(“以管理员身份”运行cmd.exe),然后输入smpd –install –phrase ******,星号部分就是你先前设置的passphrase。终于搞定!如下面图6所示

MPI安装与运行报告(Win7和Ubuntu)

图6

再次用MPIEXEC wrapper来运行并行程序,终于出现了正确的结果!太艰辛了……如下面图7所示。

MPI安装与运行报告(Win7和Ubuntu)

图7

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23639.html