AVasK

mpi_parallel_shit

Dec 12th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.47 KB | None | 0 0
  1. // R-B For (i+j) % 2 == 1:
  2.    
  3.       for(i=id + 1; i<=N-2; i += num_procs)
  4.       for(j= 1 + i % 2; j<=N-2; j+= 2)
  5.       if ((i + j) % 2 == 1)
  6.       {
  7.         double b;
  8.         b = w*((A[i-1][j]+A[i+1][j]+A[i][j-1]+A[i][j+1])/4. - A[i][j]);
  9.         eps =  Max(fabs(b),eps);
  10.         A[i][j] = A[i][j] + b;
  11.       }
  12.        
  13.      
  14.       for(i = id + 1; i<=N-2; i += num_procs)
  15.       for(j= 1 + (i + 1) % 2; j <= N-2; j+= 2)
  16.       if ((i + j) % 2 == 1)
  17.       {
  18.         double b;
  19.         b = w*((A[i-1][j]+A[i+1][j]+A[i][j-1]+A[i][j+1])/4. - A[i][j]);
  20.         eps =  Max(fabs(b),eps);
  21.         A[i][j] = A[i][j] + b;
  22.       }
  23.    
  24.     // matrix sync for all the programs:
  25.     for(i = id + 1; i<=N-2; i += num_procs)
  26.       for(j= 1 + (i + 1) % 2; j <= N-2; j+= 2)
  27.           MPI_Bcast(&A[i][j], 1, MPI_DOUBLE, id, MPI_COMM_WORLD);
  28.    
  29.     for(i = id + 1; i<=N-2; i += num_procs)
  30.       for(j= 1 + i % 2; j <= N-2; j+= 2)
  31.           MPI_Bcast(&A[i][j], 1, MPI_DOUBLE, id, MPI_COMM_WORLD);
  32.    
  33.     // Barrier:
  34.     MPI_Barrier(MPI_COMM_WORLD);
  35.     // R-B For (i+j) % 2 == 0:
  36.      
  37.       for(i = id + 1; i<=N-2; i += num_procs)
  38.       for(j=1 + i % 2; j <= N-2; j += 2)
  39.       if ((i + j) % 2 == 0)
  40.       {
  41.         double b;
  42.         b = w*((A[i-1][j]+A[i+1][j]+A[i][j-1]+A[i][j+1])/4. - A[i][j]);
  43.         A[i][j] = A[i][j] + b;
  44.       }
  45.        
  46.      
  47.       for(i = id + 1; i<=N-2; i += num_procs)
  48.       for(j=1 + (i + 1) % 2; j <= N-2; j += 2)
  49.       if ((i + j) % 2 == 0)
  50.       {
  51.         double b;
  52.         b = w*((A[i-1][j]+A[i+1][j]+A[i][j-1]+A[i][j+1])/4. - A[i][j]);
  53.         A[i][j] = A[i][j] + b;
  54.       }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment