X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/18831c99f9114246958847f3648d49e5e2c97533..0e9c0448c6566825b170b98ecff716b098bda10e:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index 3f91f2e1c0..4ebd97af96 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2007-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -281,6 +281,8 @@ void smpi_global_init(void) process_data[i]->mailbox = simcall_rdv_create(get_mailbox_name(name, i)); process_data[i]->mailbox_small = simcall_rdv_create(get_mailbox_name_small(name, i)); process_data[i]->timer = xbt_os_timer_new(); + if(MC_is_active()) + MC_ignore_heap(process_data[i]->timer, xbt_os_timer_size()); group = smpi_group_new(1); process_data[i]->comm_self = smpi_comm_new(group); process_data[i]->initialized =0; @@ -293,6 +295,10 @@ void smpi_global_init(void) for (i = 0; i < process_count; i++) { smpi_group_set_mapping(group, i, i); } + + //check correctness of MPI parameters + + xbt_assert(sg_cfg_get_int("smpi/async_small_thres")<=sg_cfg_get_int("smpi/send_is_detached_thres")); } void smpi_global_destroy(void) @@ -301,8 +307,8 @@ void smpi_global_destroy(void) int i; smpi_bench_destroy(); - smpi_group_unuse(smpi_comm_group(MPI_COMM_WORLD)); - smpi_comm_destroy(MPI_COMM_WORLD); + while(smpi_group_unuse(smpi_comm_group(MPI_COMM_WORLD))>0); + xbt_free(MPI_COMM_WORLD); MPI_COMM_WORLD = MPI_COMM_NULL; for (i = 0; i < count; i++) { smpi_group_unuse(smpi_comm_group(process_data[i]->comm_self)); @@ -466,7 +472,7 @@ int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]) fflush(stderr); if (MC_is_active()) - MC_modelcheck_safety(); + MC_do_the_modelcheck_for_real(); else SIMIX_run();