mpi1.cpp
来自「一个用c写的机遇MPI的并行程序」· C++ 代码 · 共 38 行
CPP
38 行
#include "mpi.h"
#include <stdio.h>
void main( int argc, char **argv )
{
int my_rank,p;
int source,dest,tag,data;
MPI_Status status[MPI_STATUS_SIZE];
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_INT,dest,tag,MPI_COMM_WORLD);
MPI_Recv(&data,1,MPI_INT,source,tag,MPI_COMM_WORLD,status);
}
else
{
MPI_Recv(&data,1,MPI_INT,source,tag,MPI_COMM_WORLD,status);
MPI_Send(&data,1,MPI_INT,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);
}
MPI_Finalize();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?