mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	parallel_for elimination -> thread_loop
This commit is contained in:
		@@ -156,7 +156,7 @@ public:
 | 
			
		||||
	  dbytes=0;
 | 
			
		||||
	  ncomm=0;
 | 
			
		||||
 | 
			
		||||
	  parallel_for(int dir=0;dir<8;dir++){
 | 
			
		||||
	  thread_loop( (int dir=0;dir<8;dir++),{
 | 
			
		||||
 | 
			
		||||
	    double tbytes;
 | 
			
		||||
	    int mu =dir % 4;
 | 
			
		||||
@@ -175,18 +175,12 @@ public:
 | 
			
		||||
	      tbytes= Grid.StencilSendToRecvFrom((void *)&xbuf[dir][0], xmit_to_rank,
 | 
			
		||||
						 (void *)&rbuf[dir][0], recv_from_rank,
 | 
			
		||||
						 bytes,dir);
 | 
			
		||||
	  
 | 
			
		||||
#ifdef GRID_OMP
 | 
			
		||||
#pragma omp atomic
 | 
			
		||||
#endif
 | 
			
		||||
	      ncomm++;
 | 
			
		||||
 | 
			
		||||
#ifdef GRID_OMP
 | 
			
		||||
#pragma omp atomic
 | 
			
		||||
#endif
 | 
			
		||||
	      dbytes+=tbytes;
 | 
			
		||||
	      thread_critical {
 | 
			
		||||
		ncomm++;
 | 
			
		||||
		dbytes+=tbytes;
 | 
			
		||||
	      }
 | 
			
		||||
	    }
 | 
			
		||||
	  }
 | 
			
		||||
          });
 | 
			
		||||
	  Grid.Barrier();
 | 
			
		||||
	  double stop=usecond();
 | 
			
		||||
	  t_time[i] = stop-start; // microseconds
 | 
			
		||||
 
 | 
			
		||||
@@ -485,7 +485,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
	dbytes=0;
 | 
			
		||||
	ncomm=0;
 | 
			
		||||
 | 
			
		||||
	parallel_for(int dir=0;dir<8;dir++){
 | 
			
		||||
	thread_loop( (int dir=0;dir<8;dir++),{
 | 
			
		||||
 | 
			
		||||
	  double tbytes;
 | 
			
		||||
	  int mu =dir % 4;
 | 
			
		||||
@@ -506,10 +506,9 @@ int main (int argc, char ** argv)
 | 
			
		||||
	    tbytes= Grid.StencilSendToRecvFrom((void *)&xbuf[dir][0], xmit_to_rank,
 | 
			
		||||
					       (void *)&rbuf[dir][0], recv_from_rank, bytes,dir);
 | 
			
		||||
 | 
			
		||||
#pragma omp atomic
 | 
			
		||||
	    dbytes+=tbytes;
 | 
			
		||||
	    thread_critical { dbytes+=tbytes; }
 | 
			
		||||
	  }
 | 
			
		||||
	}
 | 
			
		||||
        });
 | 
			
		||||
	Grid.Barrier();
 | 
			
		||||
	double stop=usecond();
 | 
			
		||||
	t_time[i] = stop-start; // microseconds
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    double start=usecond();
 | 
			
		||||
    parallel_for(int t=0;t<threads;t++){
 | 
			
		||||
    thread_loop( (int t=0;t<threads;t++),{
 | 
			
		||||
 | 
			
		||||
      sum[t] = x[t][0];
 | 
			
		||||
      for(int i=0;i<Nloop;i++){
 | 
			
		||||
@@ -87,7 +87,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
      stop[t]=usecond();
 | 
			
		||||
    }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    double max_stop=stop[0];
 | 
			
		||||
    double min_stop=stop[0];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user