X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9fe49bf54cebc7c586e72cab932a175ed5b41ae7..db47dd48806619184080b0b9d9e655d7d9d1ed63:/src/smpi/internals/smpi_bench.cpp diff --git a/src/smpi/internals/smpi_bench.cpp b/src/smpi/internals/smpi_bench.cpp index c3d7e18893..9fbc6b0dc5 100644 --- a/src/smpi/internals/smpi_bench.cpp +++ b/src/smpi/internals/smpi_bench.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -31,7 +31,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_bench, smpi, "Logging specific to SMPI (ben static simgrid::config::Flag smpi_wtime_sleep("smpi/wtime", "Minimum time to inject inside a call to MPI_Wtime(), gettimeofday() and clock_gettime()", - 1e-6 /* Documented to be 1ms */); + 1e-8 /* Documented to be 10 ns */); double smpi_cpu_threshold = -1; double smpi_host_speed; @@ -40,6 +40,7 @@ SharedMallocType smpi_cfg_shared_malloc = SharedMallocType::GLOBAL; double smpi_total_benched_time = 0; extern "C" XBT_PUBLIC void smpi_execute_flops_(double* flops); + void smpi_execute_flops_(double *flops) { smpi_execute_flops(*flops); @@ -101,12 +102,10 @@ void smpi_bench_begin() if (not simgrid::config::get_value("smpi/papi-events").empty()) { int event_set = smpi_process()->papi_event_set(); // PAPI_start sets everything to 0! See man(3) PAPI_start - if (PAPI_LOW_LEVEL_INITED == PAPI_is_initialized()) { - if (PAPI_start(event_set) != PAPI_OK) { - // TODO This needs some proper handling. - XBT_CRITICAL("Could not start PAPI counters.\n"); - xbt_die("Error."); - } + if (PAPI_LOW_LEVEL_INITED == PAPI_is_initialized() && PAPI_start(event_set) != PAPI_OK) { + // TODO This needs some proper handling. + XBT_CRITICAL("Could not start PAPI counters.\n"); + xbt_die("Error."); } } #endif @@ -392,9 +391,12 @@ int smpi_sample_2(int global, const char *file, int line) } else { // Enough data, no more bench (either we got enough data from previous visits to this benched nest, or we just //ran one bench and need to bail out now that our job is done). Just sleep instead - XBT_DEBUG("No benchmark (either no need, or just ran one): count >= iter (%d >= %d) or stderr= iter (%d >= %d) or stderrset_sampling(0); res = 0; // prepare to capture future, unrelated computations