+/* Copyright (c) 2007, 2009, 2010. 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. */
+
#include "private.h"
-#include <string.h>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_bench, smpi,
"Logging specific to SMPI (benchmarking)");
smx_cond_t cond;
e_surf_action_state_t state;
- if(duration > 0.001) {
+ if(duration >= xbt_cfg_get_double(_surf_cfg_set, "smpi/cpu_threshold")) {
host = SIMIX_host_self();
mutex = SIMIX_mutex_init();
cond = SIMIX_cond_init();
DEBUG1("Sleep for %f to handle real computation time", duration);
- duration *= xbt_cfg_get_double(_surf_cfg_set, "reference_speed");
+ duration *= xbt_cfg_get_double(_surf_cfg_set, "smpi/running_power");
action = SIMIX_action_execute(host, "computation", duration);
SIMIX_mutex_lock(mutex);
SIMIX_register_action_to_condition(action, cond);
}
}
-void smpi_bench_begin(const char* mpi_call) {
- double simulated = smpi_process_simulated_elapsed();
-
- if(mpi_call && xbt_cfg_get_int(_surf_cfg_set, "SMPE")) {
- INFO2("SMPE: %s in %fs", mpi_call, simulated);
+void smpi_bench_begin(int rank, const char* mpi_call) {
+ if(mpi_call && rank >= 0 && xbt_cfg_get_int(_surf_cfg_set, "smpi/log_events")) {
+ INFO3("SMPE: ts=%f rank=%d type=end et=%s", SIMIX_get_clock(), rank, mpi_call);
}
xbt_os_timer_start(smpi_process_timer());
}
-void smpi_bench_end() {
+void smpi_bench_end(int rank, const char* mpi_call) {
xbt_os_timer_t timer = smpi_process_timer();
xbt_os_timer_stop(timer);
smpi_execute(xbt_os_timer_elapsed(timer));
- smpi_process_simulated_reset();
+ if(mpi_call && rank >= 0 && xbt_cfg_get_int(_surf_cfg_set, "smpi/log_events")) {
+ INFO3("SMPE: ts=%f rank=%d type=begin et=%s", SIMIX_get_clock(), rank, mpi_call);
+ }
}
/*