注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

notes

@-@

 
 
 

日志

 
 
 
 

Windows下MPI并行程序运行环境的搭建  

2009-05-21 16:58:20|  分类: MPI |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://www.mryang.org/logs/17396382.html

  这几日对并行计算有了大概的了解,其中关键的还是并行程序的设计,搞了一早上终于弄清楚了在Windows下的MPI并行程序运行环境的搭建。

什么是MPI?
   MPI(Message Passing Interface),消息传递编程接口,是全球工业、科研和政府部联合建立的一个消息传递编程标准。是目前最为通用的并行编程方式。MPI标准中定了一 组函数接口,用于进程间的消息传递。函数的具体实现由各计算机厂商来完成,然这些都是要付费的;也有一些免费的通用MPI系统,比较著名的就是 MPICH(http://www.mcs.anl.gov/research/projects/mpich2/)和LAM MPI(http://www.lam-pi.org)。[1]

  单来说,要让你的单个PC机能运行并行程序的运行,就需要有MPI的运行环境。而PICH几乎支持所有的Linux/Unix和Windows,可以在单台PC或工作站上模拟MPI并行程,也可以在SMP系统或者机群环境上建立实用的并行计算环境。

  这里将在一台双核的PC上,利用虚拟机及MPICH2建立一个由3台PC节点构成的一个机群行计算环境。

软硬件准备
硬件:一台普通PC,当然硬盘和内存越大越好,我是用的是160G的硬盘,1G的内存。
软件:

  • VMware Workstation 6.0,在VM上虚拟两个PC,与物理主机构成3个节点的机群可以安装一个虚拟PC,然后实用VM的克隆功能。
  • Microsoft Windows XP Pro:每个节点的操作系统;
  • Microsoft .NET Framework 2.0:每个节点必须的环境;
  • vcredist_x86.exe(VC8运行库):在安装MPICH2时需要,安装时会提示Visual C++2005 sp1的提示,安装vcredist_x86.exe后,就可以正常安装MPICH2了;
  • mpich2-1.0.6p1-win32-ia32.msi:MPICH2安装程序,可到http://www.mcs.anl.gov/research/projects/mpich2/的Downloads中下载。

环境搭建
  在每台机器上均安装上Microsoft .NET Framework2.0和MPICH2。MPICH2的默认安装路在C:\Program Files\MPICH2,将MPICH2\bin加入系统环境变量的Path中。

  每个节点中新建一个用户,该用户应该具有管理员权限。我这里新建了用户mpi,密为111,隶属Administrators组。

  在每个节点新建相同的目录,来存放并行程序,该目录都应该在相同的位置。我这里的C:\mpitest。

单机测试
  首先需要注册一个用户,运行MPICH2的wmpiregister.exe,在开始->所有成程序-MPICH2中可以找到。将上一步中的用户名和密码在这里进行注册即可。

  后可以采用MPICH2提供的GUI界面进行测试,可以在在开始->所有成程序->MPICH2中到wmpiexec.exe;在MPICH2的examples下有个测试程序cpi.exe,选择后执行即可。

  可以到命令行方式执行命令:mpiexec -n 2 C:\Program Files\MPICH2examples\cpi.exe即可。命令中-n是参数,后面的2表示有两个节点并行计算。


联机测试
  这里将在具有3个节点的PC集群上测试。首先将cpi.exe程序拷贝到每个节点的C:\mpitest目录中,然后执行命令:
mpiexec -hosts 3 210.45.*.* 210.45.*.* 210.45.*.* C:\mpitest\cpi.exe

  注意:在联机测试时将XP的防火墙关闭。

与VC++ 6.0集成开发环境
   有了MPI的运行环境后,还需要一个MPI的开发环境。MPICH2可以和VC开发环境集成,集的方法很简单,将MPICH2的Include和lib 添加到VC的Directories的Include files和ibary files中即可。同时在Project Settings中将mpi.lib添加到Object/library modules中,然后就可以采用VC++ 6.0开发MPI的并行程序了。

[1] 张林波,尺学斌等.并行计算导论. 北京:清华大学出版社,2006年7月

[2]  http://read.newbooks.com.cn/info/175818.html

  评论这张
 
阅读(1272)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018