现在的位置: 首页 > 综合 > 正文

WindowsXP下MPICH2的安装和配置

2013年02月25日 ⁄ 综合 ⁄ 共 2439字 ⁄ 字号 评论关闭

WindowsXP下MPICH2的安装和配置

用了我自己的2台电脑做了一个测试,过程如下:

1、主要设备:机器1:C1.8 256M;机器2:C2.8 512M;D-LINK 4口路游器1个互连

2、准备工作:

(1)操作系统:机器1:WinXP ;机器2:WinXP SP2
(2)Microsoft .NET Framework 2.0 框架,安装使用文件为:dotnetfx.exe (可以上网找一个下载;也可以在visual c++ 2005 sp1 的安装包里面找到的)

(3)visual c++ 2005:我下了一个4百多M的ISO文件,主要用于今后的程序设计使用
(4)vcredist_x86.exe :这个是将VC2005升级到SP1用的(不确定)如果没有则在装MPICH时候会提示需要安装visual c++ 2005 sp1。
(5)mpich2-1.0.7-win32-ia32.msi :mpich2的安装文件;可以在mpich2主页下载。

3、环境搭建(在两台机器上分别做)

(1) 别安装Microsoft .NET Framework 2.0(就是dotnetfx.exe)

(2)安装VC2005(我只装了VC,其他MSDN和SQL没装)

(3)安装vcredist_x86.exe;
(4)安装mpich2-1.0.7-win32-ia32.msi

(5)安装完成后,将\bin(即安装目录,如:D:\Program Files\MPICH2\bin)添加至系统环境变量path中。这个如果配过JAVA应该知道怎么做,我的电脑-右键-属性-高级-环境变量-系统变量中的path项-编辑-在后面添个分号然后把上面的目录加上。

4、测试 

(1)单机测试 mpich2 。

测试前首先需要注册一个用户,具体操作如下:开始-->所有程序-->MPICH2-wmpiregister.exe

输入用户名、密码。有一点需要说明:该用户名须为有效的操作系统管理员账户,密码对应为系统登录密码。

接下来,测试时有两种方式可供选择:GUI界面和命令行。

- GUI方式:开始-->所有程序-->MPICH2-->wmpiexec.exe;

选择

Application为 d:\program files\mpich2\examples\cpi.exe (就是自带的例子程序)

Number of processes数量选择 2

选中“run in separate windw”选项

在“show command”可以看到当前的command是个什么样子(其实就是CMD方式的命令)

点击Excute就可以执行了。

提示输入number of intervals ,随便输入个大熟(888888)可以看到求的的派值了就OK了

如下图:

- 命令行方式:进CMD里面,直接执行:(其实就是上图 Show Command处)

mpiexec -n 2    D:\Program Files\MPICH2\examples\cpi.exe

(2) 联机测试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" 必须位于前面设置的目录中。

示例:

(8)与 visual studio 2005的集成。和上面差不多,只不过位置稍有不同。

图1:tools-->options

图2 :tools-->options

图3 :project-->references...

5 MPI程序编译及运行

这里假定 MPI 程序的开发分为两个阶段:   

- 使用 visual studio 编译MPI程序,将其debug为exe文件;
- 将exe文件copy到上面环境搭建过程中创建的JOB目录下,联机运行。

环境搭建好之后,接下来的编译和运行就非常简单。编译MPI程序前,创建一个c++工程,MPI代码放于工程中的cpp文件中,build,start debuging...,OK,编译完成。copy exe文件至每台机器的JOB目录,进入任何一台机器的cmd下,执行联机运行命令即可。

示例代码:

#include <mpi.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#pragma comment (lib, "mpi.lib")

int main(int argc, char* argv[])
{
int myid,numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init(&argc,&argv);

MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Get_processor_name(processor_name,&namelen);

fprintf(stderr,"Hello World!Process %d of %d on %s\n",myid,numprocs,processor_name);

MPI_Finalize();
    
    if (myid == 1)
    {
        printf("\nPress a key and exit.\n");

        getch();
    }
return 0;
}

来源:http://hi.baidu.com/hjywqyzwxhbhipq/item/d45ee68efe6a26c799255f63

抱歉!评论已关闭.