Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
avoid sending misleading log message
[simgrid.git] / src / smpi / internals / smpi_bench.cpp
index 7e05e7a..9fbc6b0 100644 (file)
@@ -102,12 +102,10 @@ void smpi_bench_begin()
   if (not simgrid::config::get_value<std::string>("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
@@ -393,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<thres (%f<=%f)."
+    if (not data.need_more_benchs())
+      XBT_DEBUG("No benchmark (either no need, or just ran one): count >= iter (%d >= %d) or stderr<thres (%f<=%f)."
               " apply the %fs delay instead",
               data.count, data.iters, data.relstderr, data.threshold, data.mean);
+    else
+      XBT_DEBUG("Skipping - Benchmark already performed");
     smpi_execute(data.mean);
     smpi_process()->set_sampling(0);
     res = 0; // prepare to capture future, unrelated computations