diff --git a/testing/chameleon_ztesting.c b/testing/chameleon_ztesting.c index 759122fe3edb0ec8373b58efe6cdc65669ea68f0..64df983c61973aeee1b95b4ca4708c7d0aeefd2f 100644 --- a/testing/chameleon_ztesting.c +++ b/testing/chameleon_ztesting.c @@ -212,16 +212,6 @@ int main (int argc, char **argv) { options.run_id++; } - /* Start kernel statistics */ - if ( options.profile ) { - CHAMELEON_Enable( CHAMELEON_KERNELPROFILE_MODE ); - } - - /* Start tracing */ - if ( options.trace ) { - CHAMELEON_Enable( CHAMELEON_PROFILING_MODE ); - } - if ( options.generic ) { CHAMELEON_Enable( CHAMELEON_GENERIC ); } @@ -248,14 +238,8 @@ int main (int argc, char **argv) { run = next; } - /* Stop tracing */ - if ( options.trace ) { - CHAMELEON_Disable( CHAMELEON_PROFILING_MODE ); - } - - /* Stop kernel statistics and display results */ + /* Display kernel statistics if asked */ if ( options.profile ) { - CHAMELEON_Disable( CHAMELEON_KERNELPROFILE_MODE ); RUNTIME_kernelprofile_display(); } free( runlist ); diff --git a/testing/testings.c b/testing/testings.c index cdcadb74d4186f70b22df73d5d92e126874f7215..88df38910916d8890296e4046d6697b81f16b8ef 100644 --- a/testing/testings.c +++ b/testing/testings.c @@ -128,24 +128,31 @@ testing_start( testdata_t *tdata ) */ CHAMELEON_Pause(); #else - int splitsub = parameters_getvalue_int( "splitsub" ); - int async = parameters_getvalue_int( "async" ) || splitsub; - #if defined(CHAMELEON_USE_MPI) CHAMELEON_Distributed_start(); #endif /* * Create the sequence for the asynchronous calls */ - if ( async ) { + if ( options.async ) { CHAMELEON_Sequence_Create( &(tdata->sequence) ); } + /* Start kernel statistics */ + if ( options.profile ) { + CHAMELEON_Enable( CHAMELEON_KERNELPROFILE_MODE ); + } + + /* Start tracing */ + if ( options.trace && (options.run_id == 0) ) { + CHAMELEON_Enable( CHAMELEON_PROFILING_MODE ); + } + /* * Pause the task execution if we want to time separately the task * submission from the task execution */ - if ( splitsub ) { + if ( options.splitsub ) { CHAMELEON_Pause(); } #endif @@ -164,13 +171,10 @@ testing_stop( testdata_t *tdata, cham_fixdbl_t flops ) cham_fixdbl_t t0, t1, t2, gflops; #if !defined(CHAMELEON_TESTINGS_VENDOR) - int splitsub = parameters_getvalue_int( "splitsub" ); - int async = parameters_getvalue_int( "async" ) || splitsub; - /* Submission is done, we need to start the computations */ - if ( async ) { + if ( options.async ) { tdata->tsub = RUNTIME_get_time(); - if ( splitsub ) { + if ( options.splitsub ) { CHAMELEON_Resume(); } CHAMELEON_Sequence_Wait( tdata->sequence ); @@ -194,9 +198,19 @@ testing_stop( testdata_t *tdata, cham_fixdbl_t flops ) tdata->texec = t2 - t0; #if !defined(CHAMELEON_TESTINGS_VENDOR) - if ( splitsub ) { + if ( options.splitsub ) { tdata->texec = t2 - t1; } + + /* Stop tracing */ + if ( options.trace && (options.run_id == 0) ) { + CHAMELEON_Disable( CHAMELEON_PROFILING_MODE ); + } + + /* Stop kernel statistics */ + if ( options.profile ) { + CHAMELEON_Disable( CHAMELEON_KERNELPROFILE_MODE ); + } #endif gflops = flops * 1.e-9 / tdata->texec;