A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
A value of -1 for smpi/cpu_threshold means infinity.
[simgrid.git]
/
src
/
smpi
/
smpi_global.c
diff --git
a/src/smpi/smpi_global.c
b/src/smpi/smpi_global.c
index
1c50396
..
718d079
100644
(file)
--- a/
src/smpi/smpi_global.c
+++ b/
src/smpi/smpi_global.c
@@
-1,13
+1,9
@@
-/* 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
* under the terms of the license (GNU LGPL) which comes with this package. */
* 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 <stdio.h>
-#include <stdlib.h>
-
#include "private.h"
#include "smpi_mpi_dt_private.h"
#include "mc/mc.h"
#include "private.h"
#include "smpi_mpi_dt_private.h"
#include "mc/mc.h"
@@
-15,6
+11,10
@@
#include "simix/smx_private.h"
#include "simgrid/sg_config.h"
#include "simix/smx_private.h"
#include "simgrid/sg_config.h"
+#include <float.h> // DBL_MAX
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi,
"Logging specific to SMPI (kernel)");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi,
"Logging specific to SMPI (kernel)");
@@
-295,6
+295,10
@@
void smpi_global_init(void)
for (i = 0; i < process_count; i++) {
smpi_group_set_mapping(group, i, i);
}
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)
}
void smpi_global_destroy(void)
@@
-303,8
+307,8
@@
void smpi_global_destroy(void)
int i;
smpi_bench_destroy();
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));
MPI_COMM_WORLD = MPI_COMM_NULL;
for (i = 0; i < count; i++) {
smpi_group_unuse(smpi_comm_group(process_data[i]->comm_self));
@@
-461,6
+465,11
@@
int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[])
mpi_coll_barrier_fun = (int (*)(MPI_Comm comm))
mpi_coll_barrier_description[barrier_id].coll;
mpi_coll_barrier_fun = (int (*)(MPI_Comm comm))
mpi_coll_barrier_description[barrier_id].coll;
+ smpi_cpu_threshold = sg_cfg_get_double("smpi/cpu_threshold");
+ smpi_running_power = sg_cfg_get_double("smpi/running_power");
+ if (smpi_cpu_threshold < 0)
+ smpi_cpu_threshold = DBL_MAX;
+
smpi_global_init();
/* Clean IO before the run */
smpi_global_init();
/* Clean IO before the run */