⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scatter_allgather.c

📁 MPI program Scatter_Allgather.c
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -