X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cba941895d9d4ebfa7db99954d8585039dc9b88a..0b9803aff2b8893bed56c21012d86d0a19b186a0:/src/smpi/smpi_base.cpp diff --git a/src/smpi/smpi_base.cpp b/src/smpi/smpi_base.cpp index 89d3000bf8..b64113ca98 100644 --- a/src/smpi/smpi_base.cpp +++ b/src/smpi/smpi_base.cpp @@ -18,6 +18,7 @@ #include "simgrid/sg_config.h" #include "smpi/smpi_utils.hpp" #include "colls/colls.h" +#include #include "src/kernel/activity/SynchroComm.hpp" @@ -778,9 +779,10 @@ void smpi_mpi_iprobe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status* // to avoid deadlock, we have to sleep some time here, or the timer won't advance and we will only do iprobe simcalls // (especially when used as a break condition, such as while(MPI_Iprobe(...)) ... ) - // multiplier to the sleeptime, to increase speed of execution, each failed iprobe will increase it + // nsleeps is a multiplier to the sleeptime, to increase speed of execution, each failed iprobe will increase it + // (This can speed up the execution of certain applications by an order of magnitude, such as HPL) static int nsleeps = 1; - double speed = simgrid::s4u::Actor::self()->getHost()->speed(); + double speed = simgrid::s4u::Actor::self()->host()->speed(); double maxrate = xbt_cfg_get_double("smpi/iprobe-cpu-usage"); if (smpi_iprobe_sleep > 0) { smx_activity_t iprobe_sleep = simcall_execution_start("iprobe", /* flops to executek*/nsleeps*smpi_iprobe_sleep*speed*maxrate, /* priority */1.0, /* performance bound */maxrate*speed);