-/* 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
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;
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)
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));
fflush(stderr);
if (MC_is_active())
- MC_modelcheck_safety();
+ MC_do_the_modelcheck_for_real();
else
SIMIX_run();