- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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 2008MPI版本: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 系统,通信器 MPI_COMM_WORLD 形成Call MPI Init ( )Call MPI_Comm_rank ( )Call MPI_Comm_size ( )建立新的通信器、定义新的数据类型和进程拓扑结构应用程序实体: 1.计算控制程序体; 2.进程间通信;退出 MPI 系统Call MPI_Finalize ( )End然后编写测试程序:#include?stdafx.h#include?mpi.h#include?iostreamusing?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_In
文档评论(0)