X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c133768a7de55aa45bb6ca94ae4263ae3d740999..af80eb49a15d417e40f06e0d58b74f24052d2c24:/src/surf/surf.c diff --git a/src/surf/surf.c b/src/surf/surf.c index 83bfde3806..d85df52fa6 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -126,6 +126,7 @@ const char *surf_action_state_names[6] = { }; s_surf_model_description_t surf_network_model_description[surf_network_model_description_size] = { + {"Constant", NULL, surf_network_model_init_Constant}, {"CM02", NULL, surf_network_model_init_CM02}, #ifdef HAVE_GTNETS {"GTNets", NULL, surf_network_model_init_GTNETS}, @@ -143,7 +144,7 @@ s_surf_model_description_t surf_cpu_model_description[surf_cpu_model_description s_surf_model_description_t surf_workstation_model_description[surf_workstation_model_description_size] = { {"CLM03", NULL, surf_workstation_model_init_CLM03, create_workstations}, - {"compound", NULL, surf_workstation_model_init_compound, NULL}, + {"compound", NULL, surf_workstation_model_init_compound, create_workstations}, {"ptask_L07", NULL, surf_workstation_model_init_ptask_L07, NULL} }; @@ -300,6 +301,24 @@ void surf_action_set_data(surf_action_t action, void *data) action->data = data; } +XBT_LOG_EXTERNAL_CATEGORY(surf_cpu); +XBT_LOG_EXTERNAL_CATEGORY(surf_kernel); +XBT_LOG_EXTERNAL_CATEGORY(surf_lagrange); +XBT_LOG_EXTERNAL_CATEGORY(surf_lagrange_dichotomy); +XBT_LOG_EXTERNAL_CATEGORY(surf_maxmin); +XBT_LOG_EXTERNAL_CATEGORY(surf_network); +XBT_LOG_EXTERNAL_CATEGORY(surf_parse); +XBT_LOG_EXTERNAL_CATEGORY(surf_timer); +XBT_LOG_EXTERNAL_CATEGORY(surf_workstation); + +#ifdef HAVE_SDP + XBT_LOG_EXTERNAL_CATEGORY(surf_sdp_out); + XBT_LOG_EXTERNAL_CATEGORY(surf_sdp); +#endif +#ifdef HAVE_GTNETS + XBT_LOG_EXTERNAL_CATEGORY(surf_network_gtnets); +#endif + void surf_init(int *argc, char **argv) { int i, j; @@ -307,6 +326,25 @@ void surf_init(int *argc, char **argv) const char *initial_path; + /* Connect our log channels: that must be done manually under windows */ + XBT_LOG_CONNECT(surf_cpu, surf); + XBT_LOG_CONNECT(surf_kernel, surf); + XBT_LOG_CONNECT(surf_lagrange, surf); + XBT_LOG_CONNECT(surf_lagrange_dichotomy, surf_lagrange); + XBT_LOG_CONNECT(surf_maxmin, surf); + XBT_LOG_CONNECT(surf_network, surf); + XBT_LOG_CONNECT(surf_parse, surf); + XBT_LOG_CONNECT(surf_timer, surf); + XBT_LOG_CONNECT(surf_workstation, surf); + +#ifdef HAVE_SDP + XBT_LOG_CONNECT(surf_sdp_out, surf); + XBT_LOG_CONNECT(surf_sdp, surf); +#endif +#ifdef HAVE_GTNETS + XBT_LOG_CONNECT(surf_network_gtnets, surf); +#endif + xbt_init(argc, argv); if (!surf_path) { @@ -416,20 +454,14 @@ void surf_exit(void) xbt_exit(); } -double surf_solve(void) -{ - static int first_run = 1; - - double min = -1.0; +void surf_presolve(void) { double next_event_date = -1.0; - double model_next_action_end = -1.0; + tmgr_trace_event_t event = NULL; double value = -1.0; surf_model_object_t model_obj = NULL; surf_model_t model = NULL; - tmgr_trace_event_t event = NULL; unsigned int iter; - - if (first_run) { + DEBUG0 ("First Run! Let's \"purge\" events and put models in the right state"); while ((next_event_date = tmgr_history_next_date(history)) != -1.0) { @@ -440,15 +472,24 @@ double surf_solve(void) &value, (void **) &model_obj))) { model_obj->model->common_private-> - update_resource_state(model_obj, event, value); + update_resource_state(model_obj, event, value,NOW); } } xbt_dynar_foreach(model_list, iter, model) { model->common_private->update_actions_state(NOW, 0.0); } - first_run = 0; - return 0.0; - } +} + +double surf_solve(void) +{ + double min = -1.0; + double next_event_date = -1.0; + double model_next_action_end = -1.0; + double value = -1.0; + surf_model_object_t model_obj = NULL; + surf_model_t model = NULL; + tmgr_trace_event_t event = NULL; + unsigned int iter; min = -1.0; @@ -488,7 +529,7 @@ double surf_solve(void) /* update state of model_obj according to new value. Does not touch lmm. It will be modified if needed when updating actions */ model_obj->model->common_private-> - update_resource_state(model_obj, event, value); + update_resource_state(model_obj, event, value,NOW+min); } }