From 4f61fdfb2e0fb230c4a268987d5668f6d5087adb Mon Sep 17 00:00:00 2001 From: Pedro Gonnet <pedro.gonnet@durham.ac.uk> Date: Sun, 23 Jun 2013 14:41:49 +0000 Subject: [PATCH] use omp tasks for kick1. Former-commit-id: 18e63acdc3fecd2b87b1894cac6fef1338c5990a --- src/engine.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/engine.c b/src/engine.c index 6241ec0755..d389129116 100644 --- a/src/engine.c +++ b/src/engine.c @@ -518,7 +518,12 @@ void engine_map_kick_first ( struct cell *c , void *data ) { /* Loop over the remaining progeny. */ for ( k = 0 ; k < 8 ; k++ ) if ( c->progeny[k] != NULL ) { + #pragma omp task engine_map_kick_first( c->progeny[k] , e ); + } + #pragma omp taskwait + for ( k = 0 ; k < 8 ; k++ ) + if ( c->progeny[k] != NULL ) { dt_min = fminf( dt_min , c->progeny[k]->dt_min ); dt_max = fmaxf( dt_max , c->progeny[k]->dt_max ); h_max = fmaxf( h_max , c->progeny[k]->h_max ); @@ -725,7 +730,7 @@ void engine_step ( struct engine *e ) { /* First kick. */ TIMER_TIC // space_map_cells_post( e->s , 1 , &engine_map_kick_first , e ); - k = 0; + /* k = 0; #pragma omp parallel shared(k,e) { int myk; @@ -741,7 +746,12 @@ void engine_step ( struct engine *e ) { else break; } + } */ + for ( k = 0 ; k < e->s->nr_cells ; k++ ) { + #pragma omp task + engine_map_kick_first( &e->s->cells[k] , e ); } + #pragma omp taskwait TIMER_TOC( timer_kick1 ); // for(k=0; k<10; ++k) -- GitLab