Windows环境下MPI程序的编译与运行

下面,本文分三个部分来展开:
1 准备工作
2 环境搭建
3 MPI程序编译及运行
1 准备工作:
- 操作系统分别为 Win XP 和 Win 2003 server;
- Microsoft .NET Framework 2.0 :必需;
- vcredist_x86.exe :可能会用得到。笔者在安装时碰到需要安装visual c++ 2005 sp1 的提示,此时安装该 vcredist 程序即可。
- mpich2-1.0.6p1-win32-ia32.msi :mpich2的安装文件;
- mpich2 主页: http://www.mcs.anl.gov/research/projects/mpich2/index.php.从这里可以下载所需 mpich2 程序和相应文档。
2 环境搭建
2.1 在两台机器上分别安装 Microsoft .NET Framework 2.0和vcredist_x86.exe;
2.2 在两台机器上分别安装 mpich2-1.0.6p1-win32-ia32.msi
2.3 安装完成后,其目录结构如下(假定安装路径为 D:/Program Files/MPICH2 ):
将.../MPICH2/bin(即安装目录,如:D:/Program Files/MPICH2/bin) 添加至系统环境变量path中。
2.4 单机测试 mpich2 。
      测试前首先需要注册一个用户,具体操作如下:开始-->所有程序-->MPICH2-->wmpiregister.exe:
      有一点需要说明:该用户名须为有效的操作系统管理员账户,密码对应为系统登录密码。
      接下来,测试时有两种方式可供选择: GUI界面和命令行
- GUI方式:开始-->所有程序-->MPICH2-->wmpiexec.exe;

- 命令行方式:mpiexec -n 2   D:/Program Files/MPICH2/examples/cpi.exe。
2.5 联机测试mpich2。有以下几个要点:

- 参加并行计算的机器须至少注册一个相同的账户,如笔者两台PC上都注册了一个 mpi 帐号;这些账户最好位于同一工作组,当然不在同一工作组也可以,笔者作过测试,没有问题。
- 创建JOB目录。 每台机器上须有一个路径相同的目录,用于存放待执行的JOB(即 exe 程序),笔者创建的目录是 d:/mpi/ ,并将测试用的 cpi.exe 文件copy至该目录下;
- 联机执行命令:mpiexec -hosts n Node_1 Node_2   ... Node_n .../***.exe 。“-hosts”表示要联机运行,n 表示有两台机器参加运算,Node_1(及Node_2 ...)为各机器的计算机名或IP。".../***.exe" 必须位于前面设置的目录中。
示例:
2.6 与 vc++ 6.0 的集成。在MPICH2的readme文件中有个粗略的说明:
1) Add mpich2/include to the include path
2) Add mpich2/lib to the library path
3) For C applications add mpi.lib to your target link command.
      具体到 VC6 中步骤如下:打开VC6,选择”Tools->Options”,在弹出的“Options”对话框中选择Directories选项卡,分别设置如下图:
接着:
最后:
2.7 与 visual studio 2005的集成。和上面差不多,只不过位置稍有不同。
图1:tools-->options
图2 :tools-->options
图3 :project-->references...
3 MPI程序编译及运行
这里假定 MPI 程序的开发分为 两个阶段:   
- 使用 visual studio 编译MPI程序,将其debug为exe文件;
- 将exe文件copy到上面环境搭建过程中创建的JOB目录下,联机运行。
环境搭建好之后,接下来的编译和运行就非常简单。编译MPI程序前,创建一个c++工程,MPI代码放于工程中的cpp文件中,build,start debuging...,OK,编译完成。copy exe文件至每台机器的JOB目录,进入 任何一台机器的cmd下,执行联机运行命令即可。
示例(visual studio 2005):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值