X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e816186fdeaf53fa5abf6886f157c499e09c4622..f797ad449bed4e41ebc1ec663a6a7aed6cc3751e:/src/simix/smx_context.cpp diff --git a/src/simix/smx_context.cpp b/src/simix/smx_context.cpp index 533669351a..1365a6ad00 100644 --- a/src/simix/smx_context.cpp +++ b/src/simix/smx_context.cpp @@ -1,11 +1,13 @@ /* a fast and simple context switching library */ -/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2020. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#include "src/internal_config.h" #include "src/simix/smx_private.hpp" +#include "smpi/smpi.h" #include "xbt/config.hpp" #include @@ -48,7 +50,6 @@ static simgrid::config::Flag context_factory_name( unsigned smx_context_stack_size; unsigned smx_context_guard_size; static int smx_parallel_contexts = 1; -static int smx_parallel_threshold = 2; static e_xbt_parmap_mode_t smx_parallel_synchronization_mode = XBT_PARMAP_DEFAULT; /** @@ -59,6 +60,7 @@ void SIMIX_context_mod_init() xbt_assert(simix_global->context_factory == nullptr); #if HAVE_SMPI && (defined(__APPLE__) || defined(__NetBSD__)) + smpi_init_options(); std::string priv = simgrid::config::get_value("smpi/privatization"); if (context_factory_name == "thread" && (priv == "dlopen" || priv == "yes" || priv == "default" || priv == "1")) { XBT_WARN("dlopen+thread broken on Apple and BSD. Switching to raw contexts."); @@ -67,6 +69,7 @@ void SIMIX_context_mod_init() #endif #if HAVE_SMPI && defined(__FreeBSD__) + smpi_init_options(); if (context_factory_name == "thread" && simgrid::config::get_value("smpi/privatization") != "no") { XBT_WARN("mmap broken on FreeBSD, but dlopen+thread broken too. Switching to dlopen+raw contexts."); context_factory_name = "raw"; @@ -147,32 +150,6 @@ void SIMIX_context_set_nthreads(int nb_threads) { smx_parallel_contexts = nb_threads; } -/** - * @brief Returns the threshold above which user processes are run in parallel. - * - * If the number of threads is set to 1, there is no parallelism and this - * threshold has no effect. - * - * @return when the number of user processes ready to run is above - * this threshold, they are run in parallel - */ -int SIMIX_context_get_parallel_threshold() { - return smx_parallel_threshold; -} - -/** - * @brief Sets the threshold above which user processes are run in parallel. - * - * If the number of threads is set to 1, there is no parallelism and this - * threshold has no effect. - * - * @param threshold when the number of user processes ready to run is above - * this threshold, they are run in parallel - */ -void SIMIX_context_set_parallel_threshold(int threshold) { - smx_parallel_threshold = threshold; -} - /** * @brief Returns the synchronization mode used when processes are run in * parallel.