- 6
- 0
- 约7.73千字
- 约 19页
- 2016-08-05 发布于重庆
- 举报
MPICH2在Windows环境下Visual_Studio_2008的环境
MPICH2在Windows系统Visual Studio 2010的环境搭建
本机运行环境:
机器型号:联想G450
处理器:Pentium(R)Dual-Core CPU T4200 @ 2.00GHz
运行内存(RAM):2GB
操作系统: Windows 7(32位)
程序开发环境:Visual Studio 2008
MPI版本:
mpich2-1.3.2p1-win-ia32安装程序
MPI的编译和运行
对于简单的程序,可以使用专门的编译命令。对于大的项目,最好使用标准的Makefile。MPICH提供的编译命令有mpicc和mpif77,它们分别是C和Fortran的编译命令:
mpicc -o first first.c
mpif77 -o first firstf.f
对于编译得到的目标程序,运行的命令为:
mpirun –arch xxx –np yyy first
其中xxx为machines.arch的arch,yyy为申请的进程数目。
MPICH的安装和配置
文中使用的MPICH2安装文件是mpich2-1.4-win-ia32 (/mpi/mpich),在Windows下安装MPICH2比较简单,但是要有Microsoft .NET Framework的支持。安装基本上只要单击“Next”即可。在安装过程中会提示输入进程管理器的密码,这个密码被用来访问所有的程序,这里使用的密码为admin。如果是多台机器执行mpi,那么这多台机器上必须配置相同的mpi用户,就是新用户的用户名和密码必须相同。
安装完成后,安装目录下的include子目录包含了编程所需要的所有头文件,lib子目录包含了相应的程序库,而子目录bin则包含了MPI在Windows下面必须的运行程序。运行时需要的动态链接库被安装在了Windows系统目录中。在Windows平台下可以使用Microsoft Visual Studio来开发MPI程序。
首先,下载mpich2,并进行安装。本机的安装路径为:C:\Program Files\MPICH2。之后配置系统环境变量,计算机-属性-高级-环境变量-Path,如下图:
在系统中新创建一个用户,计算机-管理-右键用户-新用户,如下图:
运行wmpiregister.exe,配置mpi使用这个新创建的用户,点击填入用户名和密码,然后点击register,如下图:
用win32控制台应用程序新建一个MYMPI项目,将MPICH2安装目录下的include子目录加入到头文件目录中。在MYMPI项目属性-配置属性-VC++目录对话框中添加include子目录,如下图:
再用相同的方法将MPICH2\lib加入到库文件目录中,如下图:
同样方法,配置程序,连接mpi库,如下图:
为了避免名字冲突,需要在预编译头文件stdafx.h中加入#inlcude mpi.h语句。现在就可以在主程序文件中编写MPI程序了,MPI的开发环境配置完毕。
在Windows下运行MPI程序
按照上面配置好开发环境之后,在MY MPI.CPP文件中输入下面的程序。在项目属性的“配置属性”-“常规”项中的“字符集”设置为“未设置”。
一般的 MPI 程序设计流程图:
退出 MPI 系统
然后编写测试程序:
#include?stdafx.h
#include?mpi.h
#include?iostream
using?std::cout;
using?std::endl;
int _tmain(int argc, _TCHAR* argv[])
{ int rank, size;
MPI_Init(argc, argv);
MPI_Comm_rank(MPI_COMM_WORLD, rank);
MPI_Comm_size(MPI_COMM_WORLD, size);
printf(Hello World from thread %d of %d\n, rank, size);
MPI_Finalize();
return 0;
}
这个程序比较简单,在函数MPI_Init()和MPI_Finalize()之间是程序并行执行的地方,MPI_Init()、MPI_Comm_rank()、MPI_Comm_size()和MPI_Finalize(),这四个函数是MPI中最重要和最常用的函数。下面分别说明:
(1)MPI_Init和MPI_Finalize
MPI_Init用来初始化MPI执行环境,建立多个MPI进程之间的联系,为后续通信做准备。而MPI_Finalize则是结束MPI执行环境。这两个函数就是定义MPI程序的并行区的,除了检测是否初始化的函数之外,不应该在这两个函数定义的区域外调用其它
您可能关注的文档
最近下载
- (正式版)DB1501∕T 0038-2023 《红花生态种植技术规程》.pdf VIP
- 2025年广东中山中考语文试题及答案(word版) .pdf VIP
- 《中国文化概论》张岱年课后习题答案.pdf VIP
- 德阳市中考:2025年-2023年《化学》考试真题与参考答案.pdf
- 公路平面交叉设计细则.docx VIP
- 人教版二年级下册数学全册教学设计(配2026年春改版教材).docx
- 智慧树 知到 大学生爱国教育十讲 章节测试答案.docx VIP
- 2024年广东中山中考语文试题及答案.pdf VIP
- 医院药品采购管理制度细则.docx VIP
- 2《JavaScript初级》教学计划大纲.docx VIP
原创力文档

文档评论(0)