xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/use_shared_malloc", "yes");
xbt_cfg_register(&_sg_cfg_set, "smpi/cpu_threshold",
- "Minimal computation time (in seconds) not discarded.",
+ "Minimal computation time (in seconds) not discarded, or -1 for infinity.",
xbt_cfgelm_double, 1, 1, NULL, NULL);
xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/cpu_threshold", 1e-6);
smx_action_t action;
smx_host_t host;
host = SIMIX_host_self();
- XBT_DEBUG("Handle real computation time: %f flops", flops);
+ XBT_DEBUG("Handle real computation time: %g flops", flops);
action = simcall_host_execute("computation", host, flops, 1);
#ifdef HAVE_TRACING
simcall_set_category (action, TRACE_internal_smpi_get_category());
static void smpi_execute(double duration)
{
if (duration >= smpi_cpu_threshold) {
- XBT_DEBUG("Sleep for %f to handle real computation time", duration);
+ XBT_DEBUG("Sleep for %g to handle real computation time", duration);
double flops = duration * smpi_running_power;
#ifdef HAVE_TRACING
int rank = smpi_process_index();
#endif
} else {
- XBT_DEBUG("Real computation took %f while option smpi/cpu_threshold is set to %f => ignore it",
+ XBT_DEBUG("Real computation took %g while option smpi/cpu_threshold is set to %g => ignore it",
duration, smpi_cpu_threshold);
}
}
/* 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. */
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
#include "private.h"
#include "smpi_mpi_dt_private.h"
#include "mc/mc.h"
#include "simix/smx_private.h"
#include "simgrid/sg_config.h"
+#include <float.h> // DBL_MAX
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi,
"Logging specific to SMPI (kernel)");
smpi_cpu_threshold = sg_cfg_get_double("smpi/cpu_threshold");
smpi_running_power = sg_cfg_get_double("smpi/running_power");
+ if (smpi_cpu_threshold < 0)
+ smpi_cpu_threshold = DBL_MAX;
smpi_global_init();