#include "SmpiHost.hpp"
#include "mc/mc.h"
-#include "private.hpp"
#include "simgrid/s4u/Engine.hpp"
-#include "simgrid/s4u/Host.hpp"
-#include "simgrid/s4u/Mailbox.hpp"
-#include "simgrid/s4u/forward.hpp"
#include "smpi_coll.hpp"
-#include "smpi_comm.hpp"
-#include "smpi_group.hpp"
-#include "smpi_info.hpp"
#include "smpi_process.hpp"
#include "src/msg/msg_private.hpp"
#include "src/simix/smx_private.hpp"
-#include "src/surf/surf_interface.hpp"
#include "xbt/config.hpp"
#include <cfloat> /* DBL_MAX */
#include <dlfcn.h>
#include <fcntl.h>
#include <fstream>
-#include <sys/stat.h>
#if HAVE_SENDFILE
#include <sys/sendfile.h>
papi_counter_t counter_data;
int event_set;
};
-
#endif
+
using simgrid::s4u::Actor;
using simgrid::s4u::ActorPtr;
std::unordered_map<std::string, double> location2speedup;
};
}
else {
+ if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap)
+ smpi_prepare_global_memory_segment();
// Load the dynamic library and resolve the entry point:
void* handle = dlopen(executable, RTLD_LAZY | RTLD_LOCAL);
if (handle == nullptr)
smpi_entry_point_type entry_point = smpi_resolve_function(handle);
if (not entry_point)
xbt_die("main not found in %s", executable);
- // TODO, register the executable for SMPI privatization
+ if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap)
+ smpi_backup_global_memory_segment();
// Execute the same entry point for each simulated process:
simix_global->default_function = [entry_point](std::vector<std::string> args) {
smpi_init_options();
smpi_global_init();
smpi_check_options();
- TRACE_smpi_alloc();
simgrid::s4u::onSimulationEnd.connect(TRACE_smpi_release);
- if (smpi_privatize_global_variables == SmpiPrivStrategies::Mmap)
- smpi_backup_global_memory_segment();
}
void SMPI_finalize(){