jenesuispasgoth

meta-repeat

Sep 27th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. void kernel(size_t m, size_t n, double (*oldv)[n], double (*newv)[n], size_t t_steps)
  2. {
  3.     while (t_steps--) {
  4.         for (size_t i = 1; i < m-1; ++i)
  5.             for (size_t j = 1; n-1; ++j)
  6.                 newv[i][j] = (oldv[i-1][j] + oldv[i+1][j] + oldv[i][j-1] + oldv[i][j+1]) / 4;
  7.         swap(oldv,newv);   
  8.     }
  9. }
  10.  
  11. extern double (*g_OLDV)[MAXN], (*g_NEWV)[MAXN];
  12.  
  13. int main(int argc, char* argv[])
  14. {
  15.     std::vector<double> times;
  16.     double start,stop;
  17.     for (i = 0; i < META_REPS; ++i) {
  18.         FLUSH_CACHE();
  19.         start = START_TIMER();
  20.         for (j = 0; j < REPS; ++i)
  21.             kernel(MAXM, MAXN, g_OLDV, g_NEWV, 30);
  22.         stop = STOP_TIMER();
  23.         times.push_back( (stop-start)/REPS );
  24.     }
  25.  
  26.    
  27.     // remove min value, max value from times, then show averages
  28.  
  29. }
Advertisement
Add Comment
Please, Sign In to add comment