- 浏览: 170278 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
boz.lee:
不错, 好多地方因为这里而出错
全局变量和局部变量在内存里的区别 -
issllx:
看到此文后对iteye深表遗憾
Yahoo S4 -
wohenshuaiba:
请问你有这个的代码吗?
k均值聚类(K-means) -
yxwang0615:
大神:
apr-1.3.3.tar.bz2
apr-util- ...
log4cxx编译方法 -
yxwang0615:
比csdn上的说的清楚干练,早看到这个就好了,我编了一天
p ...
log4cxx编译方法
使用VC8.0及MPICH2-1.0.5 for Windows进行MPI并行程序设计.下面我们将编写一个简单的并行求和 程序,实现一个非常简单的功能 ,将一个文件中的1000个数相加.这里面用到了数据的广播与进程值的归约.
程序1 将1000个随机数相加
#include "mpi.h" //建议将这个头文件置于所有头文件之前
#include <iostream>
#include <fstream>
#include <stdio.h>
#define BUFSIZE 256
#define MAXSIZE 10000
using namespace std;
int main(int argc, char* argv[])
{
int myid,numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
int i,x,low,high;
int data[MAXSIZE],myresult=0,result=0;
fstream f("D:\\rand_data.txt"); //数据存放在文件D:\\rand_data.txt中
MPI_Init(&argc,&argv); //初始化MPI通信层,MPI_INIT 必须在其他MPI函数
//调用前调用
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
/*函数 MPI_COMM_SIZE 和 MPI_COMM_RANK 查询
MPI_COMM_WORLD 以获得应用中MPI进程的总数并为这些MPI进程分别获得一个唯一的编号。获取的值放在变量 numprocs和 myid中*/
/* MPI_COMM_WORLD 是一个预定义的MPI通信字(communicator)----一个 MPI进程的有序集合,也是一个唯一的通信上下文。 MPI_COMM_WORLD 在 MPI_INIT 函数执行后被赋予意义*/
MPI_Get_processor_name(processor_name,&namelen);
//得到运行本程序的机器名
if(myid==0)
{
if(!f){
cerr<<"Cannot open the input file :D:\\rand_data.txt"<<endl<<endl;
exit(1);
}
for(i=0;i<MAXSIZE;i++){
f>>data[i];
}
}
MPI_Bcast(data,MAXSIZE,MPI_INT,0,MPI_COMM_WORLD);
//将文件中的数据广播到所有节点上
x=MAXSIZE/numprocs;
low=myid*x;
high=low+x;
for(i=low;i<high;i++)
myresult +=data[i]; //将数据分配到每个节点
cerr<<"I got "<<myresult<<" from "<<myid<<endl<<endl;
fflush(stdin);
MPI_Reduce(&myresult,&result,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD); //归约各个节点的结果到result中去
if(myid==0)
{
cerr<<"The sum is "<<result<<endl;
fflush(stdin);
}
if (myid == 0)
{
cerr<<"\nPress a key and exit.\n";
fflush(stdin);
fgetc(stdin);
}
MPI_Finalize();/*执行MPI进程中MPI层的清理和关闭工作。在 MPI_FINALIZE 后面再调用 MPI函数都是不合法的*/
return 0;
}
发表评论
-
Yahoo S4
2011-04-06 21:19 3456目前最流行的大规模数据处理是MapRed ... -
Yahoo S$
2011-04-06 21:19 53目前最流行的大规模数据处理是MapReduce ... -
CUDA SDK2.3 示例程序说明
2010-12-21 17:13 2250alignedTypes 演示了数据类 ... -
Tesla架构下的CUDA程序优化
2010-09-02 17:41 1398CUDA优化的最终目的是:在最短的时间内,在允许的误差范围 ... -
正确设置编译选项以利于英特尔® Parallel Inspector线程错误分析
2010-04-02 16:33 1289简介:英特尔® Parallel Inspector 能够分析 ... -
在英特尔® Parallel Amplifier 中使用求差功能查找性能下降
2010-04-02 16:33 792简介: 应用程序开发 ... -
揭秘英特尔® Parallel Amplifier
2010-04-02 16:32 822英特尔® Parallel Amplifier ... -
与英特尔® Parallel Amplifier 有关的编译器选项
2010-04-02 16:32 1289简介:英特尔® Parallel Amplifier 能够分析 ... -
英特尔® Parallel Amplifier 入门
2010-04-02 16:31 1033英特尔® Parallel Amplifier 可分析并提供关 ... -
英特尔® Parallel Composer 入门
2010-04-02 16:31 1117英特尔® Parallel Composer 软件开发产品能够 ... -
转载笔记(Windows下配置和运行)
2010-04-02 16:25 927我想主要的问题是权限 ... -
VC6环境下的MPI配置(转)
2010-04-02 16:24 2083MPI开发包安装 下载完毕,开始安装MPI ... -
MPICH2 与编译环境的整合
2010-04-02 16:23 1546我所使用的开发语言是C/C++,运行在两种环境下,分别是:Mi ... -
MPICH2在WINDOWS下的安装配置
2010-04-02 16:22 4714MPICH2是与MPI-2相对应的MP ... -
MPICH 的安装
2010-04-02 16:22 3189MPICH 的安装(for winXP) 为了做MPI ... -
hadoop 学习(转)
2010-04-02 16:20 1059Hadoop 的文件系统,最重 ... -
Hadoop安装部署(转)
2010-04-02 16:20 661本文主要是以安装和使 ... -
Hadoop入门(转)
2010-04-02 16:19 747Hadoop 是Google MapReduce的 ... -
Hadoop分布式文件系统:架构和设计要点Ⅱ(转)
2010-04-02 16:18 725五、文件系统元数据的持久化 Namenode存储HDFS ... -
Hadoop分布式文件系统:架构和设计要点Ⅰ(转)
2010-04-02 16:18 697一、前提和设计目标1、硬件错误是常态,而非异常情况,HDFS可 ...
相关推荐
### MPI并行程序设计知识点概览 #### 一、并行程序设计基础 - **并行计算机分类**:并行计算机可以根据指令与数据流、存储方式等进行分类。 - **指令与数据流**:根据指令与数据流的不同,可以分为SISD(单指令流...
本资料“高性能计算之并行编程技术—— MPI并行程序设计”深入探讨了如何利用MPI进行高效的并行程序设计。 MPI(Message Passing Interface)是一种编程模型,允许程序员在不同进程间传递消息,从而实现并行计算。...
### MPI并行程序设计知识点概览 #### 一、并行程序设计基础 - **并行计算机分类**:根据指令与数据的处理方式以及存储方式的不同,可以将并行计算机分为多种类型。例如,共享内存架构(SMP)、分布式内存架构(DMP...
都志辉的《MPI并行程序设计》是一本深入讲解MPI编程技术的教材或参考资料,其源程序部分包含了丰富的示例和练习,帮助读者理解和实践MPI编程。 MPI的核心在于消息传递,通过消息传递,不同进程间可以进行数据交换和...
高性能计算并行编程技术——MPI并行程序设计,
并行计算基本概念及 MPI并行程序设计入门 李新亮 中国科学院力学研究所LNM
高性能计算并行编程技术——MPI并行程序设计2
高性能计算并行编程技术——MPI并行程序设计3
#### 三、MPI并行程序设计 MPI(Message Passing Interface)是一种广泛使用的并行编程接口标准,用于编写并行应用程序。 - **MPI并行环境管理**:包括初始化和终止MPI环境等功能。 - **进程控制**:涉及创建和销毁...