Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI: add option to inject a barrier before every collective call, to allow better...
[simgrid.git] / src / smpi / internals / smpi_global.cpp
index 119fe59..8b3a184 100644 (file)
@@ -213,10 +213,6 @@ void smpi_comm_null_copy_buffer_callback(simgrid::kernel::activity::CommImpl*, v
   /* nothing done in this version */
 }
 
-int smpi_enabled() {
-  return MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED;
-}
-
 static void smpi_init_papi()
 {
 #if HAVE_PAPI
@@ -387,11 +383,11 @@ static int visit_libs(struct dl_phdr_info* info, size_t, void* data)
 {
   auto* libname    = static_cast<std::string*>(data);
   std::string path = info->dlpi_name;
-  if (path.find(*libname) != std::string::npos) {
-    *libname = std::move(path);
-    return 1;
-  }
-  return 0;
+  if (path.find(*libname) == std::string::npos)
+    return 0;
+
+  *libname = std::move(path);
+  return 1;
 }
 #endif
 
@@ -402,8 +398,7 @@ static void smpi_init_privatization_dlopen(const std::string& executable)
   stat(executable.c_str(), &fdin_stat);
   off_t fdin_size         = fdin_stat.st_size;
 
-  std::string libnames = simgrid::config::get_value<std::string>("smpi/privatize-libs");
-  if (not libnames.empty()) {
+  if (std::string libnames = simgrid::config::get_value<std::string>("smpi/privatize-libs"); not libnames.empty()) {
     // split option
     std::vector<std::string> privatize_libs;
     boost::split(privatize_libs, libnames, boost::is_any_of(";"));
@@ -584,6 +579,11 @@ int smpi_main(const char* executable, int argc, char* argv[])
   return smpi_exit_status;
 }
 
+int SMPI_is_inited()
+{
+  return MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED;
+}
+
 // Called either directly from the user code, or from the code called by smpirun
 void SMPI_init(){
   smpi_init_options_internal(false);