Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill deadcode (TIME_BENCH_AMDAHL)
[simgrid.git] / src / simix / smx_global.cpp
index 2ef29f3..6192bde 100644 (file)
@@ -5,7 +5,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdlib.h>
-#include "src/portable.h"
+#include "src/internal_config.h"
 
 #include "src/surf/surf_interface.hpp"
 #include "src/surf/storage_interface.hpp"
@@ -21,7 +21,7 @@
 #if HAVE_MC
 #include "src/mc/mc_private.h"
 #include "src/mc/mc_protocol.h"
-#include "src/mc/mc_client.h"
+#include "src/mc/Client.hpp"
 
 #include <stdlib.h>
 #include "src/mc/mc_protocol.h"
@@ -92,10 +92,10 @@ static void segvhandler(int signum, siginfo_t *siginfo, void *context)
     if (smpi_enabled() && !smpi_privatize_global_variables) {
 #if HAVE_PRIVATIZATION
       fprintf(stderr,
-        "Try to enable SMPI variable privatization with --cfg=smpi/privatize_global_variables:yes.\n");
+        "Try to enable SMPI variable privatization with --cfg=smpi/privatize-global-variables:yes.\n");
 #else
       fprintf(stderr,
-        "Sadly, your system does not support --cfg=smpi/privatize_global_variables:yes (yet).\n");
+        "Sadly, your system does not support --cfg=smpi/privatize-global-variables:yes (yet).\n");
 #endif /* HAVE_PRIVATIZATION */
     }
 #endif /* HAVE_SMPI */
@@ -190,7 +190,9 @@ void SIMIX_set_maestro(void (*code)(void*), void* data)
 void SIMIX_global_init(int *argc, char **argv)
 {
 #if HAVE_MC
-  _sg_do_model_check = getenv(MC_ENV_VARIABLE) != NULL;
+  // The communication initialization is done ASAP.
+  // We need to communicate  initialization of the different layers to the model-checker.
+  simgrid::mc::Client::initialize();
 #endif
 
   s_smx_process_t proc;
@@ -198,11 +200,6 @@ void SIMIX_global_init(int *argc, char **argv)
   if (!simix_global) {
     simix_global = xbt_new0(s_smx_global_t, 1);
 
-#ifdef TIME_BENCH_AMDAHL
-    simix_global->timer_seq = xbt_os_timer_new();
-    simix_global->timer_par = xbt_os_timer_new();
-    xbt_os_cputimer_start(simix_global->timer_seq);
-#endif
     simix_global->process_to_run = xbt_dynar_new(sizeof(smx_process_t), NULL);
     simix_global->process_that_ran = xbt_dynar_new(sizeof(smx_process_t), NULL);
     simix_global->process_list = xbt_swag_new(xbt_swag_offset(proc, process_hookup));
@@ -230,8 +227,6 @@ void SIMIX_global_init(int *argc, char **argv)
     __xbt_running_ctx_fetch = SIMIX_process_get_running_context;
     __xbt_ex_terminate = SIMIX_process_exception_terminate;
 
-    SIMIX_network_init();
-
     /* Prepare to display some more info when dying on Ctrl-C pressing */
     signal(SIGINT, inthandler);
 
@@ -260,15 +255,9 @@ void SIMIX_global_init(int *argc, char **argv)
     simix_timers = xbt_heap_new(8, &free);
   }
 
-  if (sg_cfg_get_boolean("clean_atexit"))
+  if (xbt_cfg_get_boolean("clean-atexit"))
     atexit(SIMIX_clean);
 
-#if HAVE_MC
-  // The communication initialization is done ASAP.
-  // We need to communicate  initialization of the different layers to the model-checker.
-  MC_client_init();
-#endif
-
   if (_sg_cfg_exit_asap)
     exit(0);
 }
@@ -298,7 +287,7 @@ void SIMIX_clean(void)
   SIMIX_process_killall(simix_global->maestro_process, 1);
 
   /* Exit the SIMIX network module */
-  SIMIX_network_exit();
+  SIMIX_mailbox_exit();
 
   xbt_heap_free(simix_timers);
   simix_timers = NULL;
@@ -329,15 +318,6 @@ void SIMIX_clean(void)
 
   surf_exit();
 
-#ifdef TIME_BENCH_AMDAHL
-  xbt_os_cputimer_stop(simix_global->timer_seq);
-  XBT_INFO("Amdahl timing informations. Sequential time: %f; Parallel time: %f",
-           xbt_os_timer_elapsed(simix_global->timer_seq),
-           xbt_os_timer_elapsed(simix_global->timer_par));
-  xbt_os_timer_free(simix_global->timer_seq);
-  xbt_os_timer_free(simix_global->timer_par);
-#endif
-
   xbt_mallocator_free(simix_global->synchro_mallocator);
   xbt_free(simix_global);
   simix_global = NULL;
@@ -380,9 +360,8 @@ static int process_syscall_color(void *p)
  */
 void SIMIX_run(void)
 {
-  if(MC_record_path) {
-    MC_record_replay_init();
-    MC_record_replay_from_string(MC_record_path);
+  if (MC_record_path) {
+    simgrid::mc::replay(MC_record_path);
     return;
   }
 
@@ -396,23 +375,12 @@ void SIMIX_run(void)
   do {
     XBT_DEBUG("New Schedule Round; size(queue)=%lu",
         xbt_dynar_length(simix_global->process_to_run));
-#ifdef TIME_BENCH_PER_SR
-    smx_ctx_raw_new_sr();
-#endif
     while (!xbt_dynar_is_empty(simix_global->process_to_run)) {
       XBT_DEBUG("New Sub-Schedule Round; size(queue)=%lu",
               xbt_dynar_length(simix_global->process_to_run));
 
       /* Run all processes that are ready to run, possibly in parallel */
-#ifdef TIME_BENCH_AMDAHL
-      xbt_os_cputimer_stop(simix_global->timer_seq);
-      xbt_os_cputimer_resume(simix_global->timer_par);
-#endif
       SIMIX_process_runall();
-#ifdef TIME_BENCH_AMDAHL
-      xbt_os_cputimer_stop(simix_global->timer_par);
-      xbt_os_cputimer_resume(simix_global->timer_seq);
-#endif
 
       /* Move all killer processes to the end of the list, because killing a process that have an ongoing simcall is a bad idea */
       xbt_dynar_three_way_partition(simix_global->process_that_ran, process_syscall_color);