#include "mc/mc.h"
#include "simgrid/s4u/Engine.hpp"
+#include "simgrid/plugins/file_system.h"
#include "smpi_coll.hpp"
#include "smpi_f2c.hpp"
#include "smpi_host.hpp"
#include <dlfcn.h>
#include <fcntl.h>
#include <fstream>
+#include <sys/stat.h>
#if not defined(__APPLE__)
#include <link.h>
# define MAC_OS_X_VERSION_10_12 101200
# endif
constexpr bool HAVE_WORKING_MMAP = (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12);
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun)
constexpr bool HAVE_WORKING_MMAP = false;
#else
constexpr bool HAVE_WORKING_MMAP = true;
return smpi_process()->comm_self();
}
-void smpi_process_init(int *argc, char ***argv){
+MPI_Info smpi_process_info_env(){
+ return smpi_process()->info_env();
+}
+
+void smpi_process_init(int*, char***)
+{
simgrid::smpi::ActorExt::init();
}
simgrid::s4u::Actor::self()->get_impl()->set_user_data(data);
}
-
-int smpi_global_size()
-{
- char *value = getenv("SMPI_GLOBAL_SIZE");
- xbt_assert(value,"Please set env var SMPI_GLOBAL_SIZE to the expected number of processes.");
-
- return xbt_str_parse_int(value, "SMPI_GLOBAL_SIZE contains a non-numerical value: %s");
-}
-
void smpi_comm_set_copy_data_callback(void (*callback) (smx_activity_t, void*, size_t))
{
static void (*saved_callback)(smx_activity_t, void*, size_t);
XBT_DEBUG("Copying %zu bytes from %p to %p", buff_size, tmpbuff, comm->dst_buff_);
memcpy_private(comm->dst_buff_, tmpbuff, private_blocks);
- if (comm->detached_) {
+ if (comm->detached()) {
// if this is a detached send, the source buffer was duplicated by SMPI
// sender to make the original buffer available to the application ASAP
xbt_free(buff);
if (simgrid::config::is_default("smpi/host-speed")) {
XBT_INFO("You did not set the power of the host running the simulation. "
"The timings will certainly not be accurate. "
- "Use the option \"--cfg=smpi/host-speed:<flops>\" to set its value."
- "Check http://simgrid.org/simgrid/latest/doc/options.html#options_smpi_bench for more information.");
+ "Use the option \"--cfg=smpi/host-speed:<flops>\" to set its value. "
+ "Check "
+ "https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more "
+ "information.");
}
xbt_assert(simgrid::config::get_value<double>("smpi/cpu-threshold") >= 0,
if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP)
smpi_destroy_global_memory_segments();
- smpi_free_static();
if(simgrid::smpi::F2C::lookup() != nullptr)
simgrid::smpi::F2C::delete_lookup();
}
{
smpi_fortran_entry_point_type entry_point_fortran = (smpi_fortran_entry_point_type)dlsym(handle, "user_main_");
if (entry_point_fortran != nullptr) {
- return [entry_point_fortran](int argc, char** argv) {
+ return [entry_point_fortran](int, char**) {
entry_point_fortran();
return 0;
};
SIMIX_global_init(&argc, argv);
SMPI_switch_data_segment = &smpi_switch_data_segment;
-
+ sg_storage_file_system_init();
// parse the platform file: get the host list
simgrid::s4u::Engine::get_instance()->load_platform(argv[1]);
SIMIX_comm_set_copy_data_callback(smpi_comm_copy_buffer_callback);