From: Augustin Degomme Date: Sat, 7 Aug 2021 21:38:35 +0000 (+0200) Subject: allow smpi/init option in replay as well. X-Git-Tag: v3.29~153 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/aba5e7d3fbc0cd23b5a212c2ab398c1b30a5fc0c allow smpi/init option in replay as well. --- diff --git a/src/smpi/include/smpi_config.hpp b/src/smpi/include/smpi_config.hpp index 2eb9706b17..b26cbfb2dd 100644 --- a/src/smpi/include/smpi_config.hpp +++ b/src/smpi/include/smpi_config.hpp @@ -25,6 +25,7 @@ extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_trace_call_location; extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_comp_adjustment_file; extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_default_errhandler_is_error; extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_pedantic; +extern XBT_PRIVATE simgrid::config::Flag _smpi_init_sleep; #if HAVE_PAPI extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_papi_events_file; #endif diff --git a/src/smpi/internals/smpi_config.cpp b/src/smpi/internals/smpi_config.cpp index 0c5dfcc98b..2c9cd0391c 100644 --- a/src/smpi/internals/smpi_config.cpp +++ b/src/smpi/internals/smpi_config.cpp @@ -113,6 +113,8 @@ simgrid::config::Flag _smpi_cfg_default_errhandler_is_error{ "smpi/errors-are-fatal", "Whether MPI errors are fatal or just return. Default is true", true }; simgrid::config::Flag _smpi_cfg_pedantic{ "smpi/pedantic", "Activate extra checks that may crash slightly incorrect codes which would not crash on actual implementations", true }; +simgrid::config::Flag _smpi_init_sleep( + "smpi/init", "Time to inject inside a call to MPI_Init", 0.0); #if HAVE_PAPI simgrid::config::Flag _smpi_cfg_papi_events_file{"smpi/papi-events", "This switch enables tracking the specified counters with PAPI", ""}; diff --git a/src/smpi/internals/smpi_global.cpp b/src/smpi/internals/smpi_global.cpp index 17b050ab31..1f5d7902bc 100644 --- a/src/smpi/internals/smpi_global.cpp +++ b/src/smpi/internals/smpi_global.cpp @@ -77,8 +77,6 @@ static std::vector privatize_libs_paths; // No instance gets manually created; check also the smpirun.in script as // this default name is used there as well (when the tag is generated). static const std::string smpi_default_instance_name("smpirun"); -static simgrid::config::Flag smpi_init_sleep( - "smpi/init", "Time to inject inside a call to MPI_Init", 0.0); static simgrid::config::Flag smpi_hostfile("smpi/hostfile", @@ -633,8 +631,8 @@ void SMPI_finalize() void smpi_mpi_init() { smpi_init_fortran_types(); - if(smpi_init_sleep > 0) - simgrid::s4u::this_actor::sleep_for(smpi_init_sleep); + if(_smpi_init_sleep > 0) + simgrid::s4u::this_actor::sleep_for(_smpi_init_sleep); } void SMPI_thread_create() { diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 966fbdbaa5..c94b93c13a 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -8,6 +8,7 @@ #include "smpi_datatype.hpp" #include "smpi_group.hpp" #include "smpi_request.hpp" +#include "smpi_config.hpp" #include "simgrid/s4u/Exec.hpp" #include "xbt/replay.hpp" #include @@ -850,6 +851,8 @@ void smpi_replay_init(const char* instance_id, int rank, double start_delay_flop // Wait for the other actors to initialize also simgrid::s4u::this_actor::yield(); } + if(_smpi_init_sleep > 0) + simgrid::s4u::this_actor::sleep_for(_smpi_init_sleep); } /** @brief actually run the replay after initialization */