您的位置:首页 > 其它

MPI_Gathe MPI收集

2015-07-26 21:26 274 查看
/*

MPI收集

所有进程(包括根进程)将sendbuf的数据传输给根进程;根进程按着进程号顺序依次接收到recvbuf
发送与接收的数据类型相同;sendcount和recvcount相同
非根进程接收消息缓冲区被忽略

时间:15.7.26
Jason Zhou
热爱你所写下的程序,他是你的伙伴,而不是工具.
*/
#include"mpi.h"
#include<stdio.h>

int main(int argc,char * argv[])
{
int np,rank;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&np);
printf("Hello world!   rank:%d  of np:%d\n",rank,np);

int s[10];
int rec[4][10];
for(int i=0;i<4;i++)
for(int j=0;j<10;j++)
rec[i][j]=0;

MPI_Status status;//消息接收变量

for(int i=0;i<10;i++)
s[i]=rank;

MPI_Gather(s,10,MPI_INT,rec,10,MPI_INT,0,MPI_COMM_WORLD);

if(rank==0)
{
for(int i=0;i<4;i++)
{
for(int j=0;j<10;j++)
printf("%d  ",rec[i][j]);

printf("\n");
}

}

MPI_Finalize();
return 1;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: