mpitest.cpp

来自「一个用c写的机遇MPI的并行程序」· C++ 代码 · 共 36 行

CPP
36
字号
#include "mpi.h"
main(int argc, char **argv )

 {
      int status(MPI_STATUS_SIZE), my_rank,p;
      int source,dest,tag,ierr,data;
      MPI_Init(&argc, &argv);
      MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
      MPI_Comm_size(MPI_COMM_WORLD,p);
      data=0;
      tag= 5;
      source=my_rank-1;
      if(source==-1) source=p-1;
      dest=my_rank+1
      if(dest==p) dest=0;
      if(my_rank==0) 
        {
         MPI_Send(data,1,MPI_INTEGER,dest,tag,MPI_COMM_WORLD);
         MPI_Recv(data,1,MPI_INTEGER,source,tag,MPI_COMM_WORLD,status);
         }
        else
         {
          MPI_Recv(data,1,MPI_INTEGER,source,tag,MPI_COMM_WORLD,status);
          MPI_Send(data,1,MPI_INTEGER,dest,tag,MPI_COMM_WORLD)   ;
         } 
      MPI_Bcast(data,1,MPI_INTEGER,0,MPI_COMM_WORLD);

      if(my_rank==0) 
        { if(data==p-1) 
            printf("Successful, data=%d:", data);
         else
             printf("Failure, data=%d:", data);
         }
     call MPI_Finalize();

 }

⌨️ 快捷键说明

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