From c9f1e4b399f0d6093f78cb7fda7beaeabded297f Mon Sep 17 00:00:00 2001 From: mquinson Date: Tue, 30 Jun 2009 23:28:43 +0000 Subject: [PATCH] further polishing on the merge of all model types (merly cosmetics now) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6411 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/include/surf/surf.h | 9 +++--- src/smpi/smpi_mpi.c | 2 ++ src/surf/cpu.c | 12 +++----- src/surf/model.c | 20 ++++++------ src/surf/network.c | 6 +--- src/surf/network_constant.c | 6 +--- src/surf/surf_config.c | 12 +++++--- src/surf/surf_timer.c | 6 +--- src/surf/workstation.c | 52 +++++++++++++++----------------- src/surf/workstation_ptask_L07.c | 6 +--- 10 files changed, 58 insertions(+), 73 deletions(-) diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index bd6cb6c58e..e922325138 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -43,8 +43,8 @@ SG_BEGIN_DECL() typedef struct surf_model_description { const char *name; surf_model_t model; - void (*model_init) (const char *filename); - void (*create_ws) (void); + void (*model_init_preparse) (const char *filename); + void (*model_init_postparse) (void); } s_surf_model_description_t, *surf_model_description_t; XBT_PUBLIC(void) update_model_description(s_surf_model_description_t * table, @@ -255,10 +255,11 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, } extension; } s_surf_model_t; - void surf_model_init(surf_model_t model); + surf_model_t surf_model_init(void); + void surf_model_exit(surf_model_t model); + void *surf_model_resource_by_name(surf_model_t model, const char *name); #define surf_model_resource_set(model) (model)->resource_set - void surf_model_exit(surf_model_t model); typedef struct surf_resource { surf_model_t model; diff --git a/src/smpi/smpi_mpi.c b/src/smpi/smpi_mpi.c index f454c2765c..fb65892557 100644 --- a/src/smpi/smpi_mpi.c +++ b/src/smpi/smpi_mpi.c @@ -346,6 +346,8 @@ int SMPI_MPI_Reduce(void *sendbuf, void *recvbuf, int count, * * Same as MPI_REDUCE except that the result appears in the receive buffer of all the group members. **/ +int SMPI_MPI_Allreduce( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, + MPI_Op op, MPI_Comm comm ); int SMPI_MPI_Allreduce( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm ) { diff --git a/src/surf/cpu.c b/src/surf/cpu.c index 676472805e..2860616152 100644 --- a/src/surf/cpu.c +++ b/src/surf/cpu.c @@ -181,8 +181,8 @@ static void action_change_state(surf_action_t action, static double share_resources(double now) { s_surf_action_cpu_Cas01_t action; - return generic_maxmin_share_resources(surf_cpu_model-> - states.running_action_set, + return generic_maxmin_share_resources(surf_cpu_model->states. + running_action_set, xbt_swag_offset(action, variable), cpu_maxmin_system, lmm_solve); } @@ -390,21 +390,17 @@ static void finalize(void) cpu_maxmin_system = NULL; surf_model_exit(surf_cpu_model); + surf_cpu_model = NULL; xbt_swag_free(running_action_set_that_does_not_need_being_checked); running_action_set_that_does_not_need_being_checked = NULL; - - free(surf_cpu_model); - surf_cpu_model = NULL; } static void surf_cpu_model_init_internal(void) { s_surf_action_t action; - surf_cpu_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_cpu_model); + surf_cpu_model = surf_model_init(); running_action_set_that_does_not_need_being_checked = xbt_swag_new(xbt_swag_offset(action, state_hookup)); diff --git a/src/surf/model.c b/src/surf/model.c index 5e052a7904..02104c2aaf 100644 --- a/src/surf/model.c +++ b/src/surf/model.c @@ -18,10 +18,10 @@ static int int_die_impossible_paction(surf_action_t action) } /** @brief initialize common datastructures to all models */ -void surf_model_init(surf_model_t model) +surf_model_t surf_model_init(void) { s_surf_action_t action; - + surf_model_t model = xbt_new0(s_surf_model_t, 1); model->model_private = xbt_new0(s_surf_model_private_t, 1); @@ -39,14 +39,8 @@ void surf_model_init(surf_model_t model) model->action_cancel = void_die_impossible_paction; model->action_recycle = void_die_impossible_paction; + return model; } - -void *surf_model_resource_by_name(surf_model_t model, const char *name) -{ - return xbt_dict_get_or_null(model->resource_set, name); -} - - /** @brief finalize common datastructures to all models */ void surf_model_exit(surf_model_t model) { @@ -56,4 +50,12 @@ void surf_model_exit(surf_model_t model) xbt_swag_free(model->states.done_action_set); xbt_dict_free(&model->resource_set); free(model->model_private); + free(model); } + +void *surf_model_resource_by_name(surf_model_t model, const char *name) +{ + return xbt_dict_get_or_null(model->resource_set, name); +} + + diff --git a/src/surf/network.c b/src/surf/network.c index 030afdfe0b..57196e47c3 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -677,8 +677,6 @@ static void finalize(void) xbt_dict_free(&link_set); surf_model_exit(surf_network_model); - - free(surf_network_model); surf_network_model = NULL; loopback = NULL; @@ -696,9 +694,7 @@ static void finalize(void) static void surf_network_model_init_internal(void) { - surf_network_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_network_model); + surf_network_model = surf_model_init(); surf_network_model->get_resource_name = get_resource_name; surf_network_model->action_get_state = surf_action_get_state; diff --git a/src/surf/network_constant.c b/src/surf/network_constant.c index c6e2e49634..ee41e36138 100644 --- a/src/surf/network_constant.c +++ b/src/surf/network_constant.c @@ -286,8 +286,6 @@ static void action_set_max_duration(surf_action_t action, double duration) static void finalize(void) { surf_model_exit(surf_network_model); - - free(surf_network_model); surf_network_model = NULL; card_number = 0; @@ -295,9 +293,7 @@ static void finalize(void) static void surf_network_model_init_internal(void) { - surf_network_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_network_model); + surf_network_model = surf_model_init(); surf_network_model->get_resource_name = get_resource_name; surf_network_model->action_get_state = surf_action_get_state; diff --git a/src/surf/surf_config.c b/src/surf/surf_config.c index 4f6524eef0..096bd61dc3 100644 --- a/src/surf/surf_config.c +++ b/src/surf/surf_config.c @@ -244,12 +244,13 @@ void surf_config_models_setup(const char *platform_file) cpu_id = find_model_description(surf_cpu_model_description, cpu_model_name); - surf_cpu_model_description[cpu_id].model_init(platform_file); - surf_network_model_description[network_id].model_init(platform_file); + surf_cpu_model_description[cpu_id].model_init_preparse(platform_file); + surf_network_model_description[network_id]. + model_init_preparse(platform_file); } DEBUG0("Call workstation_model_init"); - surf_workstation_model_description[workstation_id].model_init + surf_workstation_model_description[workstation_id].model_init_preparse (platform_file); } @@ -260,6 +261,7 @@ void surf_config_models_create_elms(void) int workstation_id = find_model_description(surf_workstation_model_description, workstation_model_name); - if (surf_workstation_model_description[workstation_id].create_ws != NULL) - surf_workstation_model_description[workstation_id].create_ws(); + if (surf_workstation_model_description[workstation_id]. + model_init_postparse != NULL) + surf_workstation_model_description[workstation_id].model_init_postparse(); } diff --git a/src/surf/surf_timer.c b/src/surf/surf_timer.c index 945ead9c0c..f6ba5c76db 100644 --- a/src/surf/surf_timer.c +++ b/src/surf/surf_timer.c @@ -155,16 +155,12 @@ static void finalize(void) xbt_swag_free(command_to_run); surf_model_exit(surf_timer_model); - - free(surf_timer_model); surf_timer_model = NULL; } static void surf_timer_model_init_internal(void) { - surf_timer_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_timer_model); + surf_timer_model = surf_model_init(); surf_timer_model->get_resource_name = get_resource_name; surf_timer_model->action_get_state = surf_action_get_state; diff --git a/src/surf/workstation.c b/src/surf/workstation.c index 7318d82c32..5db137d417 100644 --- a/src/surf/workstation.c +++ b/src/surf/workstation.c @@ -151,14 +151,14 @@ static void update_resource_state(void *id, static surf_action_t execute(void *workstation, double size) { - return surf_cpu_model->extension.cpu. - execute(((workstation_CLM03_t) workstation)->cpu, size); + return surf_cpu_model->extension. + cpu.execute(((workstation_CLM03_t) workstation)->cpu, size); } static surf_action_t action_sleep(void *workstation, double duration) { - return surf_cpu_model->extension.cpu. - sleep(((workstation_CLM03_t) workstation)->cpu, duration); + return surf_cpu_model->extension. + cpu.sleep(((workstation_CLM03_t) workstation)->cpu, duration); } static void action_suspend(surf_action_t action) @@ -214,35 +214,35 @@ static surf_action_t communicate(void *workstation_src, void *workstation_dst, double size, double rate) { - return surf_network_model->extension.network. - communicate(((workstation_CLM03_t) workstation_src)->network_card, - ((workstation_CLM03_t) workstation_dst)->network_card, size, - rate); + return surf_network_model->extension. + network.communicate(((workstation_CLM03_t) workstation_src)->network_card, + ((workstation_CLM03_t) workstation_dst)->network_card, + size, rate); } static e_surf_cpu_state_t get_state(void *workstation) { - return surf_cpu_model->extension.cpu. - get_state(((workstation_CLM03_t) workstation)->cpu); + return surf_cpu_model->extension. + cpu.get_state(((workstation_CLM03_t) workstation)->cpu); } static double get_speed(void *workstation, double load) { - return surf_cpu_model->extension.cpu. - get_speed(((workstation_CLM03_t) workstation)->cpu, load); + return surf_cpu_model->extension. + cpu.get_speed(((workstation_CLM03_t) workstation)->cpu, load); } static double get_available_speed(void *workstation) { - return surf_cpu_model->extension.cpu. - get_available_speed(((workstation_CLM03_t) - workstation)->cpu); + return surf_cpu_model->extension. + cpu.get_available_speed(((workstation_CLM03_t) + workstation)->cpu); } static xbt_dict_t get_properties(void *workstation) { - return surf_cpu_model-> - get_properties(((workstation_CLM03_t) workstation)->cpu); + return surf_cpu_model->get_properties(((workstation_CLM03_t) workstation)-> + cpu); } static surf_action_t execute_parallel_task(int workstation_nb, @@ -260,17 +260,19 @@ static const void **get_route(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension.network. - get_route(workstation_src->network_card, workstation_dst->network_card); + return surf_network_model->extension.network.get_route(workstation_src-> + network_card, + workstation_dst-> + network_card); } static int get_route_size(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension.network. - get_route_size(workstation_src->network_card, - workstation_dst->network_card); + return surf_network_model->extension. + network.get_route_size(workstation_src->network_card, + workstation_dst->network_card); } static const char *get_link_name(const void *link) @@ -296,16 +298,12 @@ static int link_shared(const void *link) static void finalize(void) { surf_model_exit(surf_workstation_model); - - free(surf_workstation_model); surf_workstation_model = NULL; } static void surf_workstation_model_init_internal(void) { - surf_workstation_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_workstation_model); + surf_workstation_model = surf_model_init(); /* surf_workstation_model->extension_private = xbt_new0(s_surf_workstation_model_extension_private_t,1); */ surf_workstation_model->get_resource_name = get_resource_name; diff --git a/src/surf/workstation_ptask_L07.c b/src/surf/workstation_ptask_L07.c index 7ea73441a9..60be0931e1 100644 --- a/src/surf/workstation_ptask_L07.c +++ b/src/surf/workstation_ptask_L07.c @@ -418,8 +418,6 @@ static void finalize(void) } surf_model_exit(surf_workstation_model); - - free(surf_workstation_model); surf_workstation_model = NULL; for (i = 0; i < nb_workstation; i++) @@ -1003,9 +1001,7 @@ static void define_callbacks(const char *file) static void model_init_internal(void) { - surf_workstation_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_workstation_model); + surf_workstation_model = surf_model_init(); surf_workstation_model->get_resource_name = get_resource_name; surf_workstation_model->action_get_state = surf_action_get_state; -- 2.20.1