Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <mpi.h>
  3. using namespace std;
  4.  
  5. int main (int argc, char* argv[]) {
  6. int rang;
  7. MPI::Request zahtjev[6];
  8. MPI::Status status;
  9. double x[5], y[10];
  10.  
  11. MPI::Init(argc, argv); /* Zapocni MPI */
  12. rang = MPI::COMM_WORLD.Get_rank(); /* Get rank */
  13. int n = MPI::COMM_WORLD.Get_size();
  14. if( rang == 0 ) {
  15. for(int i=0;i<5;i++)
  16. x[i]=i+2;
  17.  
  18. for(int i=0;i<n-1;i++){
  19. zahtjev[i]=MPI::COMM_WORLD.Isend(x, 5, MPI::DOUBLE, i+1, i+1);
  20. }
  21.  
  22. int k=1;
  23. for(int i=0;i<10;i++){
  24. y[i]=k;
  25. k+=2;
  26. }
  27.  
  28. for(int i=0;i<n-1;i++){
  29. zahtjev[i].Wait(status);
  30. }
  31.  
  32. for(int i=0;i<10;i++)
  33. cout<<y[i]<<endl;
  34. }
  35.  
  36. else {
  37. zahtjev[0] = MPI::COMM_WORLD.Irecv(x, 5, MPI::DOUBLE, MPI::ANY_SOURCE, MPI::ANY_TAG);
  38. zahtjev[0].Wait(status);
  39. cout << "Proces rang= "<<rang<<" primio je poruku oznake " << status.Get_tag() << " od procesa ranga " << status.Get_source() << endl;
  40. }
  41.  
  42. MPI::Finalize(); /* Zavrsi MPI */
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement