2009年3月15日星期日

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

http://mryang.blogbus.com/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


--
snigoal,Wuhan,China

没有评论:

发表评论

VISIT COUNT