Commit 2d2d6d30 authored by Nandhana Sakhtivel's avatar Nandhana Sakhtivel
Browse files

Completed ring communication

parent d20deb6c
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ void gridding_data()
 #endif

 #ifdef ONE_SIDE

   memset( (char*)Me.win.ptr, 0, size_of_grid*sizeof(double)*1.1);
   if( Me.Rank[myHOST] == 0 )
   {
@@ -129,7 +130,6 @@ void gridding_data()
   blocks.Bstart[b] = blocks.Bstart[b-1]+blocks.Bsize[b-1];
   blocks.Bsize[b] = size + (b < rem); }
  

 #endif
  
 #ifndef USE_MPI
@@ -286,7 +286,7 @@ void gridding_data()
     //MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin);
     //MPI_Win_unlock(target_rank,slabwin);
     int res = reduce(target_rank);
     printf("I'm outside reduce global rank %d target rank %d local_rank %d \n", global_rank, target_rank, Me.Rank[HOSTS]);
    // printf("I'm outside reduce global rank %d target rank %d local_rank %d \n", global_rank, target_rank, Me.Rank[HOSTS]);

     #else   // relates to #ifdef ONE_SIDE
      
@@ -303,8 +303,6 @@ void gridding_data()
      ADD_TIME(reduce, twt_r, tpr_r);

      
      // wipe before getting to the next sector
  //    memset((void*)gridss, 0, size_of_grid * sizeof(double));

      // Deallocate all sector arrays
      free(uus);
@@ -318,13 +316,18 @@ void gridding_data()
    

    #ifdef ONE_SIDE

        if( (Me.Rank[HOSTS] >= 0) && (Me.Nhosts > 1 )) {
          MPI_Waitall( Me.Ntasks[WORLD], requests, MPI_STATUSES_IGNORE);
          free(requests);}

        MPI_Barrier(MPI_COMM_WORLD);

        if(Me.Nhosts>1)
		memcpy(Me.sfwins[Me.Rank[myHOST]].ptr, grid, size_of_grid);
        else
        	memcpy(Me.sfwins[global_rank].ptr, grid, size_of_grid);
       /* int test = memcmp(Me.sfwins[global_rank].ptr, grid, size_of_grid);
        printf("The comparison value = %d\n", test);*/

    #endif

  free( histo_send );