Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clean code.
[simgrid.git] / src / surf / workstation_ptask_L07.c
index 6b7e0aa..54b7427 100644 (file)
@@ -1,6 +1,5 @@
-/*     $Id$     */
-
-/* Copyright (c) 2007 Arnaud Legrand. All rights reserved.                  */
+/* Copyright (c) 2007, 2008, 2009, 2010. 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. */
@@ -80,9 +79,9 @@ static void ptask_update_action_bound(surf_action_workstation_L07_t action)
 
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
-      cpu_L07_t card_src = action->workstation_list[i];
-      cpu_L07_t card_dst = action->workstation_list[j];
-      xbt_dynar_t route = used_routing->get_route(card_src->id, card_dst->id);
+      xbt_dynar_t route = global_routing->get_route(surf_resource_name(action->workstation_list[i]),
+                 surf_resource_name(action->workstation_list[j]));
+
       double lat = 0.0;
 
       if (action->communication_amount[i * workstation_nb + j] > 0) {
@@ -400,7 +399,7 @@ static void ptask_finalize(void)
   surf_workstation_model = NULL;
   surf_model_exit(surf_network_model);
   surf_network_model = NULL;
-  used_routing->finalize();
+  global_routing->finalize();
 
   ptask_host_count = 0;
 
@@ -450,10 +449,9 @@ static surf_action_t ptask_execute_parallel_task(int workstation_nb,
   /* Compute the number of affected resources... */
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
-      cpu_L07_t card_src = workstation_list[i];
-      cpu_L07_t card_dst = workstation_list[j];
       link_L07_t link;
-      xbt_dynar_t route = used_routing->get_route(card_src->id, card_dst->id);
+      xbt_dynar_t route = global_routing->get_route(surf_resource_name(workstation_list[i]),
+                                                                                                                 surf_resource_name(workstation_list[j]));
       double lat = 0.0;
 
       if (communication_amount[i * workstation_nb + j] > 0)
@@ -502,10 +500,9 @@ static surf_action_t ptask_execute_parallel_task(int workstation_nb,
 
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
-      cpu_L07_t card_src = workstation_list[i];
-      cpu_L07_t card_dst = workstation_list[j];
       link_L07_t link;
-      xbt_dynar_t route = used_routing->get_route(card_src->id, card_dst->id);
+      xbt_dynar_t route = global_routing->get_route(surf_resource_name(workstation_list[i]),
+                                                                                                                 surf_resource_name(workstation_list[j]));
 
       if (communication_amount[i * workstation_nb + j] == 0.0)
         continue;
@@ -575,10 +572,7 @@ static surf_action_t ptask_action_sleep(void *cpu, double duration)
 
 static xbt_dynar_t ptask_get_route(void *src, void *dst)
 {
-  cpu_L07_t host_src = src;
-  cpu_L07_t host_dst = dst;
-
-  return used_routing->get_route(host_src->id, host_dst->id);
+       return global_routing->get_route( surf_resource_name(src), surf_resource_name(dst));
 }
 
 static double ptask_get_link_bandwidth(const void *link)
@@ -665,6 +659,17 @@ static void ptask_parse_cpu_init(void)
           state_initial, state_trace, current_property_set);
 }
 
+static void ptask_cpu_create_resource(char *name, double power_peak,
+        double power_scale,
+        tmgr_trace_t power_trace,
+        e_surf_resource_state_t state_initial,
+        tmgr_trace_t state_trace,
+        xbt_dict_t cpu_properties)
+{
+       ptask_cpu_new(xbt_strdup(name),power_peak,power_scale,power_trace,
+                                         state_initial,state_trace,cpu_properties);
+}
+
 static link_L07_t ptask_link_new(char *name,
                            double bw_initial,
                            tmgr_trace_t bw_trace,
@@ -749,6 +754,23 @@ static void ptask_parse_link_init(void)
            current_property_set);
 }
 
+static void ptask_link_create_resource(char *name,
+                                                                         double bw_initial,
+                                                                         tmgr_trace_t bw_trace,
+                                                                         double lat_initial,
+                                                                         tmgr_trace_t lat_trace,
+                                                                         e_surf_resource_state_t
+                                                                         state_initial,
+                                                                         tmgr_trace_t state_trace,
+                                                                         e_surf_link_sharing_policy_t
+                                                                         policy, xbt_dict_t properties)
+{
+
+       ptask_link_new(name, bw_initial, bw_trace,
+                  lat_initial, lat_trace, state_initial, state_trace,policy, xbt_dict_new());
+}
+
+
 static void ptask_add_traces(void)
 {
   xbt_dict_cursor_t cursor = NULL;
@@ -822,7 +844,6 @@ static void ptask_define_callbacks(const char *file)
   surfxml_add_callback(ETag_surfxml_platform_cb_list, &ptask_add_traces);
 }
 
-
 /**************************************/
 /********* Module  creation ***********/
 /**************************************/
@@ -850,6 +871,7 @@ static void ptask_model_init_internal(void)
     ptask_update_resource_state;
   surf_workstation_model->model_private->finalize = ptask_finalize;
 
+
   surf_workstation_model->extension.workstation.execute = ptask_execute;
   surf_workstation_model->extension.workstation.sleep = ptask_action_sleep;
   surf_workstation_model->extension.workstation.get_state =
@@ -868,7 +890,11 @@ static void ptask_model_init_internal(void)
   surf_workstation_model->extension.workstation.link_shared = ptask_link_shared;
   surf_workstation_model->extension.workstation.get_properties =
     surf_resource_properties;
-
+  surf_workstation_model->extension.workstation.link_create_resource =
+       ptask_link_create_resource;
+  surf_workstation_model->extension.workstation.cpu_create_resource =
+       ptask_cpu_create_resource;
+  surf_workstation_model->extension.workstation.add_traces = ptask_add_traces;
 
   if (!ptask_maxmin_system)
     ptask_maxmin_system = lmm_system_new();
@@ -886,6 +912,7 @@ static void ptask_model_init_internal(void)
 /**************************************/
 void surf_workstation_model_init_ptask_L07(const char *filename)
 {
+  INFO0("surf_workstation_model_init_ptask_L07");
   xbt_assert0(!surf_cpu_model, "CPU model type already defined");
   xbt_assert0(!surf_network_model, "network model type already defined");
   surf_network_model = surf_model_init();