Advertisement
gitarnik

Gather

Apr 23rd, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <math.h>
  4. #include <mpi.h>
  5. #include <malloc.h>
  6.  
  7. void Wydruk(int id, int p, int *dane, int rozmiar){
  8. int i,n;
  9.  
  10. for (n=0; n<p; n++){
  11. if (n==id){
  12.     printf(" %d : ", id);
  13.     for (i=0; i<rozmiar; i++)
  14.     printf(" %d",dane[i]);
  15.     printf("\n");
  16.     if (id==p-1) printf("\n");
  17.    
  18. }
  19. MPI_Barrier(MPI_COMM_WORLD);
  20. }
  21. }
  22.  
  23. int main(int argc, char *argv[])
  24. {
  25.  
  26.   int id, p, i;
  27.   int senddane[5];
  28.   int *recvdane;
  29.   int korzen=0;
  30.  
  31.  
  32.   MPI_Init(&argc, &argv);
  33.  
  34.   MPI_Comm_rank(MPI_COMM_WORLD, &id);
  35.   MPI_Comm_size(MPI_COMM_WORLD, &p);
  36.  
  37.     for (i=0; i<5; i++)
  38.     senddane[i]=id+1;
  39.    
  40.     recvdane=malloc(p*5*sizeof(int));
  41.  
  42.     for (i=0; i<p*5; i++)  
  43.     recvdane[i]=0;
  44.  
  45.  
  46.     Wydruk(id,p,senddane,5);
  47.  
  48.     MPI_Gather(senddane,5,MPI_INT,recvdane,5,MPI_INT,korzen,MPI_COMM_WORLD);
  49.  
  50.     //Wydruk(id,p,recvdane,p*5);
  51.  
  52.     free(recvdane);
  53.     MPI_Finalize();
  54.       return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement