windows下MPI环境配置(VC6.0)

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中的字符串,可以在控制台下输入应该字符串得到类似结果,这里就不再介绍了。

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

注意要把库文件 mpi.lib添加进去或者

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


#include <iostream>
#include <cstring>
#include <malloc.h>
#include <cstdio>
#define MPICH_SKIP_MPICXX
#include <mpi.h>
using namespace std;

int main() {
	MPI_Status status;
	char str[] = "abcdef\n";
	int myid;
//	printf( "%s\n", str );

//	str = ( char * )malloc( 100 * sizeof( char ) );
//	str[5] = '\0';

	MPI_Init( NULL, NULL );
	MPI_Comm_rank( MPI_COMM_WORLD, &myid );
	if( myid == 2 ) {
		MPI_Send( "HELLO", 5, MPI_CHAR, 7, 1234, MPI_COMM_WORLD );
	}
	if( myid == 7 ) {
		MPI_Recv( str, 5, MPI_CHAR, 2, 1234, MPI_COMM_WORLD, &status );
		printf( "Got %s from P%d, tag %d\n", str, status.MPI_SOURCE, status.MPI_TAG );
	}
	MPI_Finalize();
	return 0;
}


 


编译运行,第一个MPI程序就诞生了。注意要用mpi自带的wmpiexec运行生成的.exe程序


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值