X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/00cff67d255bcd4743341de79bd0270dbd0ef531..6b7630e0fc3f68bc100c7a96a419caafa46881b2:/src/smpi/smpi_base.c diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index 991d09f2ca..62429c854e 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -7,6 +7,7 @@ #include "private.h" #include "xbt/time.h" #include "mc/mc.h" +#include "xbt/replay.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_base, smpi, "Logging specific to SMPI (base)"); @@ -54,6 +55,35 @@ static MPI_Request build_request(void *buf, int count, return request; } +void smpi_action_trace_run(char *path) +{ + char *name; + xbt_dynar_t todo; + xbt_dict_cursor_t cursor; + + action_fp=NULL; + if (path) { + action_fp = fopen(path, "r"); + xbt_assert(action_fp != NULL, "Cannot open %s: %s", path, + strerror(errno)); + } + + if (!xbt_dict_is_empty(action_queues)) { + XBT_WARN + ("Not all actions got consumed. If the simulation ended successfully (without deadlock), you may want to add new processes to your deployment file."); + + + xbt_dict_foreach(action_queues, cursor, name, todo) { + XBT_WARN("Still %lu actions for %s", xbt_dynar_length(todo), name); + } + } + + if (path) + fclose(action_fp); + xbt_dict_free(&action_queues); + action_queues = xbt_dict_new_homogeneous(NULL); +} + static void smpi_mpi_request_free_voidp(void* request) { MPI_Request req = request;