Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <mpi.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char* argv[]){
  7. MPI::Status status;
  8. //MPI::Request request;
  9. int rank, size, rankF = 1;
  10. int data[10], received[10];
  11.  
  12. MPI::Init(argc, argv);
  13. rank = MPI::COMM_WORLD.Get_rank();
  14. size = MPI::COMM_WORLD.Get_size();
  15.  
  16. if(size >= 3){
  17. if(rank == 0){
  18. MPI::COMM_WORLD.Isend(&data, 10, MPI::INT, 1, rankF);
  19. //request.Wait(status);
  20. cout<<status.Get_source()<<"\n";
  21. }
  22. //for(rankF = 1; rankF < size; rankF++){
  23. if(rankF == size-1){
  24. MPI::COMM_WORLD.Irecv(&received, 10, MPI::INT, rankF, MPI::ANY_TAG);
  25. MPI::COMM_WORLD.Isend(&received, 10, MPI::INT, 0, rankF);
  26. //request.Wait(status);
  27. cout<<status.Get_source()<<rankF<<"\n";
  28. }
  29. else{
  30. MPI::COMM_WORLD.Irecv(&received, 10, MPI::INT, rankF, MPI::ANY_TAG);
  31. MPI::COMM_WORLD.Isend(&received, 10, MPI::INT, rankF+1, rankF);
  32. //request.Wait(status);
  33. cout<<status.Get_source()<<rankF<<"\n";
  34. }
  35. //}
  36. }
  37. MPI::Finalize();
  38. return 0 ;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement