diff --git a/src/cell.h b/src/cell.h index 59d26413c6c333a32874f45aaf9288a6f254b725..211f16ab3078b082395ebee0babc594ec2b7882d 100644 --- a/src/cell.h +++ b/src/cell.h @@ -117,6 +117,10 @@ struct cell { /* Linking pointer for "memory management". */ struct cell *next; + /* Timing stuff. */ + ticks tic, toc; + int tid; + } __attribute__((aligned (64))); diff --git a/src/engine.c b/src/engine.c index 1e4afdb89bfa16b967b6d9fddf35ce8803f1cf0d..6241ec0755971d8422b259d52f6b85874866144a 100644 --- a/src/engine.c +++ b/src/engine.c @@ -732,8 +732,12 @@ void engine_step ( struct engine *e ) { while ( 1 ) { #pragma omp critical myk = k++; - if ( myk < e->s->nr_cells ) + if ( myk < e->s->nr_cells ) { + e->s->cells[myk].tic = getticks(); + e->s->cells[myk].tid = omp_get_thread_num(); engine_map_kick_first( &e->s->cells[myk] , e ); + e->s->cells[myk].toc = getticks(); + } else break; }