Windows系统下搭建MPI(并行计算)环境

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 05:56 点击:

MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。

一.准备工作
1.1   安装MPI的SDK——MPICH2。
mpich2-1.4.1p1-win-ia32安装程序的下载地址:

http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

本文以设置安装在C:\Program Files\MPICH2目录下为例。

测试所安装的MPICH2

测试前首先需要注册一个用户,具体操作如下:“开始”按钮-->所有程序-->MPICH2-->wmpiregister.exe。输入用户名、密码。有一点需要说明:该用户名须为有效的操作系统管理员账户,密码对应为系统登录密码。如图所示:

 \

接下来选择开始-->所有程序-->MPICH2-->wmpiexec.exe;

选择Application为 c:\program files\mpich2\examples\cpi.exe (就是自带的一个计算圆周率的例子程序)。在Number of processes的数量选择2表示用二个进程来协同完成。选中“run in separate windw”选项。再点击Excute就可以执行了。

然后在控制台窗口下提示输入number of intervals ,随便输入个大点的数字(50000,5000000)就可以看到求的的圆周率值。如下图:

 \

注意到上图中的Show Comman中的字符串,可以在控制台下输入应该字符串得到类似结果,这里就不再介绍了。

1.2 在VC6中添加MPICH2
先在VC6.0中加入mpi的include和lib。VC6.0程序菜单中“Tools” --> “Optains”-->“Directories”然后添加,如下图所示:

 

 \

 

 

二.第一个MPI程序
加入之后,新建Win32 Console Application工程,加入如下代码:

view plain
#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 获得进程的rank,该rank值为0到p-1间的整数,相当于进程的ID 
    MPI_Comm_rank(MPI_COMM_WORLD, &myid); 
    //用MPI_Comm_size 获得进程个数  int MPI_Comm_size(MPI_Comm comm, int *size); 
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs); 
 
    MPI_Get_processor_name(processor_name, &namelen); 
     
    printf("Hello World! by MoreWindows\nProcess %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; 

编译运行,第一个MPI程序就诞生了。下面是我电脑上的运行结果:

 \

 

 

三.多台电脑上协同运行MPI
只有多台电脑集群后才能更好的发挥并行计算的威力,当然由于MPI的帮助,这个工作将变得异常简单。下面以二台PC协同运行前面提到过的cpi.exe为例。

3.1 多台电脑运行MPI的条件
第一

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • dos命令原来也能这样用?允许查找未知子目录指定文件
      •  windows的磁盘操作之八——格式化分区的思考
      • windows篇-第三章 安装和配置DNS服务器
      • windows篇-第二章 安装和配置Web服务器
      • windows篇-第一章 windows server 2008安装和简单配置
      •  windows server 2003断开远程之后自动注销用户
      • Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法
      • Windows 2008 R2 SP1部署WSUS 3.0 SP2
      • windows 2008 rodc扩展

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1