X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/680d3333804979cca617afe9bef76ab1b1eb9f0e..638d55dcb8d944f7c74127725f1acb7b8e1449de:/src/simix/smx_host.c diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 30043b08f4..20e7abbbc7 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -9,6 +9,7 @@ #include "xbt/log.h" #include "xbt/dict.h" #include "mc/mc.h" +#include "mc/mc_replay.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_host, simix, "SIMIX hosts"); @@ -363,7 +364,7 @@ void SIMIX_host_autorestart(smx_host_t host) } smx_synchro_t SIMIX_host_execute(const char *name, - smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask){ + smx_host_t host, double flops_amount, double priority, double bound, unsigned long affinity_mask){ /* alloc structures and initialize */ smx_synchro_t synchro = xbt_mallocator_get(simix_global->synchro_mallocator); @@ -371,15 +372,12 @@ smx_synchro_t SIMIX_host_execute(const char *name, synchro->name = xbt_strdup(name); synchro->state = SIMIX_RUNNING; synchro->execution.host = host; - -#ifdef HAVE_TRACING synchro->category = NULL; -#endif /* set surf's action */ - if (!MC_is_active()) { + if (!MC_is_active() && !MC_record_replay_is_active()) { - synchro->execution.surf_exec = surf_workstation_execute(host, computation_amount); + synchro->execution.surf_exec = surf_workstation_execute(host, flops_amount); surf_action_set_data(synchro->execution.surf_exec, synchro); surf_action_set_priority(synchro->execution.surf_exec, priority); @@ -405,7 +403,7 @@ smx_synchro_t SIMIX_host_execute(const char *name, smx_synchro_t SIMIX_host_parallel_execute(const char *name, int host_nb, smx_host_t *host_list, - double *computation_amount, double *communication_amount, + double *flops_amount, double *bytes_amount, double amount, double rate){ void **workstation_list = NULL; @@ -417,10 +415,7 @@ smx_synchro_t SIMIX_host_parallel_execute(const char *name, synchro->name = xbt_strdup(name); synchro->state = SIMIX_RUNNING; synchro->execution.host = NULL; /* FIXME: do we need the list of hosts? */ - -#ifdef HAVE_TRACING synchro->category = NULL; -#endif /* set surf's synchro */ workstation_list = xbt_new0(void *, host_nb); @@ -441,10 +436,10 @@ smx_synchro_t SIMIX_host_parallel_execute(const char *name, } /* set surf's synchro */ - if (!MC_is_active()) { + if (!MC_is_active() && !MC_record_replay_is_active()) { synchro->execution.surf_exec = surf_workstation_model_execute_parallel_task((surf_workstation_model_t)surf_workstation_model, - host_nb, workstation_list, computation_amount, communication_amount, rate); + host_nb, workstation_list, flops_amount, bytes_amount, rate); surf_action_set_data(synchro->execution.surf_exec, synchro); } @@ -515,7 +510,7 @@ void simcall_HANDLER_host_execution_wait(smx_simcall_t simcall, smx_synchro_t sy simcall->issuer->waiting_synchro = synchro; /* set surf's synchro */ - if (MC_is_active()) { + if (MC_is_active() || MC_record_replay_is_active()) { synchro->state = SIMIX_DONE; SIMIX_execution_finish(synchro); return; @@ -610,7 +605,6 @@ void SIMIX_post_host_execute(smx_synchro_t synchro) } -#ifdef HAVE_TRACING void SIMIX_set_category(smx_synchro_t synchro, const char *category) { if (synchro->state != SIMIX_RUNNING) return; @@ -620,7 +614,6 @@ void SIMIX_set_category(smx_synchro_t synchro, const char *category) surf_action_set_category(synchro->comm.surf_comm, category); } } -#endif /** * \brief Function to get the parameters of the given the SIMIX host.