Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <mpi.h>
  3. #include <unistd.h>
  4. #include <ctime>
  5. #include <cstdlib>
  6.  
  7. using namespace std;
  8.  
  9. int main(int argc, char * argv[])
  10. {
  11. MPI_Init(&argc, &argv);
  12. int rank,size,rozmiar;
  13. float najwieksza;
  14. float max;
  15.  
  16. MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  17. MPI_Comm_size(MPI_COMM_WORLD, &size);
  18.  
  19. if(!rank)
  20. {
  21. int rozmiar;
  22. cout<<"Podaj rozmiar tablicy"<<endl;
  23. cin>>rozmiar;
  24. for(int i=0;i<size;i++)
  25. {
  26. MPI_Send(&rozmiar,1,MPI_INT,i,102,MPI_COMM_WORLD);
  27. }
  28. }
  29.  
  30. MPI_Recv(&rozmiar,1,MPI_INT,0,102,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
  31.  
  32.  
  33. cout<<"Jestem procesem "<< rank<< " Czekam "<< rank<< " sekund "<<endl;
  34. sleep(rank);
  35. srand(time(NULL));
  36.  
  37. float *tablica=new float[rozmiar];
  38.  
  39. for(int i=0;i<rozmiar;i++)
  40. {
  41. tablica[i]=(rand()%1000)/100.0;
  42. }
  43.  
  44. cout<<"Tablica dla " <<rank<<" procesu"<<endl;
  45. for(int i=0;i<rozmiar;i++)
  46. {
  47. cout<<tablica[i]<<endl;
  48. }
  49.  
  50. max=tablica[0];
  51.  
  52. for(int i=0;i<rozmiar;i++)
  53. {
  54. if( max < tablica[i])
  55. max=tablica[i];
  56. }
  57.  
  58. MPI_Reduce(&max, &najwieksza, 1, MPI_FLOAT , MPI_MAX, 1, MPI_COMM_WORLD);
  59.  
  60.  
  61. if(rank==1)
  62. {
  63. cout<<"Najwieksza wylosowana liczba: "<<max<<endl;
  64. }
  65.  
  66. delete [] tablica;
  67.  
  68. MPI_Finalize();
  69. return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement