MPI聚合通信之MPI_Bcast函数

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:53   1707   0

MPI_Bcast函数指一个进程(称为根进程)同时发送同样的消息给通信器中的所有其它进程。

如下面的例子中,0进程对数组进行了赋值,随后通过Bcast()函数广播出去,其它的进程在收到后将数组打印出来。

#include "stdio.h"
#include "mpi.h"

int main(int argc,char **argv)
{
 int size,rank;
 static int max=20;
 int h[max];
 
 MPI_Init(&argc,&argv);
 MPI_Comm_size(MPI_COMM_WORLD,&size);
 MPI_Comm_rank(MPI_COMM_WORLD,&rank);
 
 if(rank==0)
 {
  for(int i=0;i<max;i++)
   h[i]=i+rank;
 }
  //sprintf(c,"highcomputing");
 MPI_Bcast(h,max,MPI_INT,0,MPI_COMM_WORLD);
 
 
 if(rank)
 {
  printf("process %d is running\n",my_rank);
  for(int i=0;i<max;i++)
  {
   printf("%d ",h[i]);
  }
  printf("\n");
 }
 MPI_Finalize();
 return 0;
}

输出结果为:

process 1 is running
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
process 2 is running
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
process 3 is running
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP