64位Windows7平台下MPICH2并行计算环境的搭建及Fortran90并行程序的编译运行

时间:2012-10-18   来源:   网友评论:0   人气: 4877 作者: 河海水妖新浪博客

 好多年前在WindowsXP32位系统下搭建过MPICH的并行计算环境,并把几台台式机连在一块儿实现了Fortran90程序的编译和运行。现在都用上Win764位系统了,编译软件也从原来的Compaq Visual Fortran换成了Intel Visual FortranMPICH2的版本也从原来的1.0.3升级到1.4.1了。在此环境下搭建MPICH的并行计算平台与之前有些区别,这里作一下说明。

 
1、软硬件条件
1)硬件:四核心CPU4G内存,320G硬盘,台式机和笔记本各一台;
2)软件环境:64Windows7旗舰版,Visual Studio2005(以下简称VS2005), Intel Visual Fortran10.1(以下简称IVF, 64位的MPICH2-1.4.1p
MPICH232位版本和64位版本,可以在以下网站上去下载相应系统的MPICH2版本。
 
2、软件安装
1Microsoft .NET Framework 2.0的安装
Win7系统(无论32位还是64位),因系统自带.Net3.5版本,所以就不必要再安装了。对XP系统,此组件必须先安装。
 
2VS2005IVF的安装
由于使用Fortran作为并行开发语言,本人用IVF10.1,为了用集成开发环境,需要装VS2005。具体安装过程见下面的博文:
上面的博文中同时介绍了Math Kernel LibraryMKL)的安装和配置,若不需要,可不安装。若下载的是IVF11以上的版本,里面自带MKL数据库,会直接安装,就不用再进行配置了。
 
3MPICH2的安装(64位版)
Win7系统,由于系统用户权限比较复杂,一定要用Administrator用户进行登录才可以安装MPICH2。用其它用户登录,即便是属于Administrators管理组的用户,安装后MPICH2所需要的smpd.exe进程都无法启动。所以,若当前登录用户不是Administrator,请先注销后用Administrator用户登录来安装MPICH2。安装过程中若提示有进程要通过防火墙,点允许即可,安装以默认选项及路径安装即可,一共就十几兆,也不大,不需要更改路径。安装结束后,可注销Administrator用户,再以常用用户登录系统。
 
安装完成后,可以通过查看任务管理器里面是否有smpd.exe进程来看安装是否成功。若有,安装成功;否则,安装不成功。
 
XP系统,就没有那么麻烦了,只需要是管理员组里的用户就可以进行安装了。
 
3MPICH2并行编译环境配置
1)创建MPICH2登录用户

右击桌面上的计算机(XP系统为我的电脑)并选管理,在计算机管理窗口左边选本地用户和组->用户,然后在右边空白处右击选新建用户;在新建用户窗口中新建mpich2用户并设置密码,取消其中的用户下次登录必须修改密码,选中用户不能更改密码密码永不过期,如图1所示。所有安装并行环境上的计算机上的用户名和密码都必须一样
mch01.jpg 
 

1 创建mpich2用户

2
)注册MPICH2用户

点开始菜单->程序->MPICH2->wmpiregister,在窗口中输入刚才创建的mpich2用户和密码,点register按键注册,若下面窗口中显示“password encrypted into the Register”则注册成功,否则,请检查用户名和密码。点OK退出窗口。如图2所示。
mch02.jpg 
 

2 注册MPICH2用户


3
)将MPICH2集成到VS2005的集成开发环境中

打开一个VS2005,点工具菜单下的选项,在选项窗口左边选Fotran下的Compile,并选中X64位编译环境(因为这里安装的是MPICH264位版本)

Libraries右边的...,在弹出窗口中添加MPICH2库的路径“C:\Program Files\MPICH2\lib”

Includes右边的...,在弹出窗口中添加MPICH2的包含文件路径“C:\Program Files\MPICH2\include”,每个路径占一行。如图3所示。
mch03.jpg 

3 集成MPICH2VS2005IVF

在所有计算机都按上面的方法和顺序进行安装和设置。之后,64windows7系统下的MPICH2并行计算环境就搭建起来了,可以进行并行程序的设计和编译了。

 

4Fotran90程序的编译

VS2005里新建Fortran90程序项目(MPICH2安装目录下的example目录下有个fpai.fFortran程序可以用来作为算例,但它是F77格式的,可以稍做修改即可),在Fortran源程序里要添加include 'mpif.h'语句来包含MPICH2的头文件。

 

VS2005项目菜单下的属性,或直接按Alt+F7打开项目属性设置窗口,选中DebugRelease配置,并选择X64位平台(若没有X64位平台,则新建一个)。因为这里只安装了MPICH264位版本,所以,只能编译64位的并行程序,不能编译32位的并行程序。

 

在属性设置窗口左边选Linker下的Input,在右边的Additional Dependencies后面输入fmpich2.lib,确定退出。如图4所示。
mch04.jpg 
 

4  Fortran90程序属性设置

 

5、并行程序的运行

MPICH2的并行程序运行有两种方式,命令行方式和GUI方式。在多台电脑上运行MPICH2并行程序时,要把编译好的程序复制到需要运行的各台电脑上的相同目录下。本人是在各电脑上建“E:\MyDisk\MPICH2\RunProgs”这样的目录,然后把编译好的程序分别复制到各电脑的这个目录下。以多机方式运行时,需要关闭各计算机上的防火墙,或者将要运行的程序在防火墙软件中设置为完成可信的程序,否则,可能出现网络错误。

 

1GUI方式运行

执行开始菜单->程序->MPICH2->wmpiexec,在运行设置GUI窗口中点Application右边的...选择MPICH2的可执行程序,可设置程序在弹出窗口中运行,设置运行的进程数,设置参与运行的计算机名或IP地址,最后点Excute来运行并行程序。如图5所示。
mch05.jpg 

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、添加32MPICH2编译和运行环境

前面是以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 PlatformWin32,然后设置LibrariesInclude分别为C:\Program Files\MPICH2_32\libC:\Program Files\MPICH2_32\include,确定退出;

3)在上面第4步的程序编译设置中选Win32平台,然后按同样的方法添加同样的库文件;

4)将提取的32MPICH2的动态连接库文件(大约12DLL文件)放到MPICH2的运行目录下(如“E:\MyDisk\MPICH2\RunProgs”)。

这样就可以在64位的Win7系统下同时进行64位和32MPICH2程序的编译和运行了,由于32位的MPICH2只是强加进去的,所以在VS2005集成环境下只能编译32位的MPICH2程序,由于缺少动态库文件,不能运行。只能把编译的的32MPICH2程序复制到MPICH2运行目录下才可以运行。

 

其实,最后这一步添加32MPICH264位系统下是有点多余的,即有了64位的,一般就不再需要32位的了。若要32位的,直接装32位的MPICH2就可以了。

 

在多机联网运行并行程序时,所有系统都的可执行程序应该都是一样的,即同时为32位的或同时为64位,否则,运行不了。

 

文章评论