//Writed by YaoPU 2016 Oct 10
//Connect by yaopu@iccas.ac.cn
#include"mpi.h"
#include<stdio.h>
int main(int argc,char **argv)
{
MPI_Init(&argc,&argv);
int rank,size,value;
MPI_Status status;
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
do{
if(rank==0){
fprintf(stderr,"\nPlease give new value=");
scanf("%d",&value);
fprintf(stderr,"%d read <-<- (%d)\n",rank,value);
if(size>1)
{
MPI_Send(&value,1,MPI_INT,rank+1,0,MPI_COMM_WORLD);
fprintf(stderr,"%d send (%d)->-> %d\n",rank,value,rank+1);
}
}
else{
MPI_Recv(&value,1,MPI_INT,rank-1,0,MPI_COMM_WORLD,&status);
fprintf(stderr,"%d send (%d)->-> %d\n",rank,value,rank+1);
if(rank<size-1){
MPI_Send(&value,1,MPI_INT,rank+1,0,MPI_COMM_WORLD);
fprintf(stderr,"%d send (%d)->-> %d\n",rank,value,rank+1);
}
}
MPI_Barrier(MPI_COMM_WORLD);
}while(value >=0);
MPI_Finalize();
return 0;
}
MPI_Barrier
最新推荐文章于 2022-04-15 16:52:26 发布