+/* Copyright (c) 2007, 2008, 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 <stdint.h>
#include "private.h"
#include "smpi_mpi_dt_private.h"
+#include "mc/mc.h"
XBT_LOG_NEW_CATEGORY(smpi, "All SMPI categories");
xbt_fifo_t pending_sent;
xbt_fifo_t pending_recv;
xbt_os_timer_t timer;
+ double simulated;
MPI_Comm comm_self;
} s_smpi_process_data_t;
return data->timer;
}
+void smpi_process_simulated_start(void) {
+ smpi_process_data_t data = smpi_process_data();
+
+ data->simulated = SIMIX_get_clock();
+}
+
+double smpi_process_simulated_elapsed(void) {
+ smpi_process_data_t data = smpi_process_data();
+
+ return SIMIX_get_clock() - data->simulated;
+}
+
MPI_Comm smpi_process_comm_self(void) {
smpi_process_data_t data = smpi_process_data();
int count = smpi_process_count();
int i;
+ smpi_bench_destroy();
smpi_comm_destroy(MPI_COMM_WORLD);
MPI_COMM_WORLD = MPI_COMM_NULL;
for(i = 0; i < count; i++) {
"Minimal computation time (in seconds) not discarded.",
xbt_cfgelm_double, &default_threshold, 1, 1, NULL, NULL);
+#ifdef HAVE_TRACING
+ TRACE_global_init (&argc, argv);
+#endif
+
SIMIX_global_init(&argc, argv);
+#ifdef HAVE_TRACING
+ TRACE_smpi_start ();
+#endif
+
// parse the platform file: get the host list
SIMIX_create_environment(argv[1]);
fflush(stderr);
SIMIX_init();
- while (SIMIX_solve(NULL, NULL) != -1.0);
+#ifdef HAVE_MC
+ if (_surf_do_model_check)
+ MC_modelcheck(1);
+ else
+#endif
+ while (SIMIX_solve(NULL, NULL) != -1.0);
if (xbt_cfg_get_int(_surf_cfg_set, "smpi/display_timing"))
INFO1("simulation time %g", SIMIX_get_clock());
SIMIX_message_sizes_output("toto.txt");
+#ifdef HAVE_TRACING
+ TRACE_smpi_end ();
+#endif
+
SIMIX_clean();
return 0;
}