MPI安装与运行报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MPI安装于运行报告
本机运行环境:
机器型号:联想G450
处理器:Pentium(R)Dual-Core CPU T4200 @ 2.00GHz
运行内存(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中的例子程序拷贝进去。
图 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
然后直接编译运行程序,出现了如下面图4所示的界面,表明该程序只在本机进行了运行,尚未真正并行执行。
图 4
安装完MPICH2之后,系统中应该会出现一个名为smpd的服务进程。
在此情况下,运行并行程序时,会出现如下的错误提示:”Error: No smpd passphrase specified through the registry or .smpd file, exiting.”,如下面图5所示。
图 5
这个是需要用管理员账户,启动命令行(“以管理员身份”运行cmd.exe),然后输入smpd –install –phrase ******,星号部分就是你先前设置的passphrase。
再次用MPIEXEC wrapper来运行并行程序,出现正确结果,如下图所示。
图7
Ubuntu系统下mpich2的安装。
把老师给的“mpich2-1.3.2p1.tar.gz ”解压到我的用户目录下。
此时已经是午夜12点了,白天还要去工作……
解压完之后,就在根目录下面发现了README文档,马上打开观看。
参照其中Getting Started一章,我开始了新的探索。
一、首先进入解压后mpich2文件的根目录,运行配置操作:./configure
--prefix=/home/<USERNAME>/mpich2-install |& tee info.txt ,结果报错如
下:
"No Fortran 77 compiler found. If you don't need to build any
Fortran programs, you can disable Fortran support using
--disable-f77 and --disable-fc. If you do want to build
Fortran programs, you need to install a Fortran compiler such
as gfortran or ifort before you can proceed."
于是按照提示修改命令,改为./configure --prefix=/home/east/mpich2-install --disable-f77 --disable-fc |& tee info.txt,结果又提示没有找到C++编译器:“configure: error: Aborting because C++ compiler does not work. If you do not
need a C++ compiler, configure with –disable-cxx”
考虑到以后应该会用到g++,于是根据提示用“sudo apt-get i nstall g++”命令进行了安装。
然后再次运行配置命令,终于成功完成。
二、运行make命令”make |& tee info.txt”,经过了漫长的等待,看到提
示”Make completed”的时候,终于松了一口气。
三、安装MPICH2,运行”make install |& tee info.txt”命令。
很快,就“Make
completed”了。
四、将安装后MPICH2的bin目录“mpich2-install”添加到系统路径中,即添
加到启动脚本中,运行命令“PATH=/home/east/mpich2-install/bin:$PATH ;
export PATH”,或者直接修改系统配置文件/etc/profile,然后重启系统以使配置文件生效。
然后运行which mpiexec,系统回显出mpiexec的路径,证明bin目录已经成功添加到系统路径中。
图8
为了节省时间,并确保程序的正确性,我就直接运行MPICH2安装文件中,example目录下自带的例子程序cpi了,这个程序是用来计算圆周率的。
用mpicc进行编译,mpiexec来运行程序。
具体命令及运行结果如上面图8所示。