64位Windows7平台下MPICH2并行计算环境的搭建及Fortran90并行程序的编译运行
好多年前在WindowsXP的32位系统下搭建过MPICH的并行计算环境,并把几台台式机连在一块儿实现了Fortran90程序的编译和运行。现在都用上Win7的64位系统了,编译软件也从原来的Compaq Visual Fortran换成了Intel Visual Fortran,MPICH2的版本也从原来的1.0.3升级到1.4.1了。在此环境下搭建MPICH的并行计算平台与之前有些区别,这里作一下说明。
右击桌面上的计算机(XP系统为我的电脑)并选管理,在计算机管理窗口左边选“本地用户和组->用户”,然后在右边空白处右击选新建用户;在新建用户窗口中新建mpich2用户并设置密码,取消其中的“用户下次登录必须修改密码”,选中“用户不能更改密码”和“密码永不过期”,如图1所示。所有安装并行环境上的计算机上的用户名和密码都必须一样
图1 创建mpich2用户
2)注册MPICH2用户
点开始菜单->程序->MPICH2->wmpiregister,在窗口中输入刚才创建的mpich2用户和密码,点register按键注册,若下面窗口中显示“password encrypted into the Register”则注册成功,否则,请检查用户名和密码。点OK退出窗口。如图2所示。
图2 注册MPICH2用户
3)将MPICH2集成到VS2005的集成开发环境中
打开一个VS2005,点工具菜单下的选项,在选项窗口左边选Fotran下的Compile,并选中X64位编译环境(因为这里安装的是MPICH2的64位版本)
点Libraries右边的...,在弹出窗口中添加MPICH2库的路径“C:\Program Files\MPICH2\lib”;
点Includes右边的...,在弹出窗口中添加MPICH2的包含文件路径“C:\Program Files\MPICH2\include”,每个路径占一行。如图3所示。
图3 集成MPICH2到VS2005的IVF里
在所有计算机都按上面的方法和顺序进行安装和设置。之后,64位windows7系统下的MPICH2并行计算环境就搭建起来了,可以进行并行程序的设计和编译了。
4、Fotran90程序的编译
在VS2005里新建Fortran90程序项目(MPICH2安装目录下的example目录下有个fpai.f的Fortran程序可以用来作为算例,但它是F77格式的,可以稍做修改即可),在Fortran源程序里要添加include 'mpif.h'语句来包含MPICH2的头文件。
点VS2005项目菜单下的属性,或直接按Alt+F7打开项目属性设置窗口,选中Debug或Release配置,并选择X64位平台(若没有X64位平台,则新建一个)。因为这里只安装了MPICH2的64位版本,所以,只能编译64位的并行程序,不能编译32位的并行程序。
在属性设置窗口左边选Linker下的Input,在右边的Additional Dependencies后面输入fmpich2.lib,确定退出。如图4所示。
图4 Fortran90程序属性设置
5、并行程序的运行
MPICH2的并行程序运行有两种方式,命令行方式和GUI方式。在多台电脑上运行MPICH2并行程序时,要把编译好的程序复制到需要运行的各台电脑上的相同目录下。本人是在各电脑上建“E:\MyDisk\MPICH2\RunProgs”这样的目录,然后把编译好的程序分别复制到各电脑的这个目录下。以多机方式运行时,需要关闭各计算机上的防火墙,或者将要运行的程序在防火墙软件中设置为完成可信的程序,否则,可能出现网络错误。
1)GUI方式运行
执行开始菜单->程序->MPICH2->wmpiexec,在运行设置GUI窗口中点Application右边的...选择MPICH2的可执行程序,可设置程序在弹出窗口中运行,设置运行的进程数,设置参与运行的计算机名或IP地址,最后点Excute来运行并行程序。如图5所示。
图5 以GUI方式运行MPICH2程序
2)命令行方式运行
以命令行方式运行MPICH2程序时,需要选把MPICH2的安装路径里的bin目录设置到系统环境变量,否则,每次都要输入mpiexec.exe文件的全路径,比较麻烦。设置环境变量方法:右击桌面的计算机或我的电脑->属性->高级系统设置->高级选项卡下面的“环境变量”,在用户变量或系统变量中找到path,然后点编辑,在path设置最后面加上“;C:\Program Files\MPICH2\bin”(注意:每个路径以分号隔开)。若设置的是用户变量的path,需要注册当前用户再登录,若设置的系统变量,则要重新启动系统。
完成以上设置后,按Win+R或开始菜单下的运行,输入cmd并回车,开户Dos命令行窗口,在输入中输入:
E: 回车切换到E盘
cd E:\MyDisk\MPICH2\RunProgs 回车切换到MPICH2运行程序目录下
mpiexec -n 4 cpi.exe 回车运行程序,其中-n 4为指定4个运行进程
6、添加32位MPICH2编译和运行环境
前面是以64位的MPICH2进行安装和配置的,并进行程序的编译和运行。若操作系统是32位的,可以按照上述方法只安装32位版本的MPICH2程序,并进行配置,只是在配置时选32位的安装库文件或包含文件路径即可。
若已经完成了64位的设置,但同时想在64位系统上再装32位的MPICH2就需要些技巧了。因为MPICH2安装后除了生成自己的安装目录外,还在C:\windows\systerm32目录下生成了一些动态连接库文件,这些文件是程序运行时所需要的。不管是32位还是64位,它们的文件名是一样的,所以,若安装了64位后再直接安装32位,会把64位的动态连接库文件覆盖了,64位的MPICH2程序就不能运行了。为了解决这个问题,可按以下步骤设置:
1)在进行完64位系统安装和配置后,在另外一台32位系统上装了32位的MPICH2,然后提取32位的MPICH2安装目录(将取命名为MPICH2_32)及相应的运行所需的动态连接库,这些文件可以通过http://dl.dbank.com/c0pfphjg3o来下载;
2)将MPICH2_32放到C:\programs files\下,然后在上面的第3步的3)中选择Target Platform为Win32,然后设置Libraries和Include分别为C:\Program Files\MPICH2_32\lib和C:\Program Files\MPICH2_32\include,确定退出;
3)在上面第4步的程序编译设置中选Win32平台,然后按同样的方法添加同样的库文件;
4)将提取的32位MPICH2的动态连接库文件(大约12个DLL文件)放到MPICH2的运行目录下(如“E:\MyDisk\MPICH2\RunProgs”)。
这样就可以在64位的Win7系统下同时进行64位和32位MPICH2程序的编译和运行了,由于32位的MPICH2只是强加进去的,所以在VS2005集成环境下只能编译32位的MPICH2程序,由于缺少动态库文件,不能运行。只能把编译的的32位MPICH2程序复制到MPICH2运行目录下才可以运行。
其实,最后这一步添加32位MPICH2到64位系统下是有点多余的,即有了64位的,一般就不再需要32位的了。若要32位的,直接装32位的MPICH2就可以了。
在多机联网运行并行程序时,所有系统都的可执行程序应该都是一样的,即同时为32位的或同时为64位,否则,运行不了。
文章评论