scatter_allgather.c

来自「MPI program Scatter_Allgather.c」· C语言 代码 · 共 54 行

C
54
字号
#include <mpi.h>
#include <stdio.h>
#include <string.h>

#define MSGLEN 50

 
main(int argc,char **argv)
{
  int i;
  int rank, size;
  int nchar;
  char sendbuf[MSGLEN];
  char recvbuf[MSGLEN];
  char *realmsg = "Hello there!";
  
  MPI_Status status;

  int msglen;
 
 
  MPI_Init(&argc,&argv);
 
  MPI_Comm_size(MPI_COMM_WORLD,&size);

  MPI_Comm_rank(MPI_COMM_WORLD,&rank);

  if(rank==0)  
    {
      strcpy(sendbuf, realmsg);
    }  
    

  strcpy(recvbuf, "NUL\0");
    
  msglen = strlen(realmsg)+1;

  printf("Before Scatter: on rank %d msg = <%s>\n", rank, recvbuf);

  MPI_Scatter(sendbuf,msglen/size,MPI_CHAR,recvbuf,msglen/size,MPI_CHAR,0,MPI_COMM_WORLD);

  printf("After  Scatter: on rank %d msg = <%s>\n", rank, recvbuf);
   
  MPI_Allgather(sendbuf,msglen,MPI_CHAR,recvbuf,msglen,MPI_CHAR,MPI_COMM_WORLD); 
  
  printf(" After ALL Gather: on rank %d msg = <%s>\n",rank,recvbuf);

  MPI_Finalize();
  exit(0);
} 



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?