Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill surf_cpu_model_init_bypass_im, use surf_host_create_resource, change the manner...
authorcoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 15 Jul 2010 09:16:07 +0000 (09:16 +0000)
committercoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 15 Jul 2010 09:16:07 +0000 (09:16 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8026 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/surf/surf.h
src/surf/cpu_im.c
src/surf/network.c
src/surf/surfxml_parse.c

index b68c617..3f3b604 100644 (file)
@@ -154,7 +154,12 @@ XBT_PUBLIC_DATA(routing_t) used_routing;
        e_surf_resource_state_t(*get_state) (void *cpu);
        double (*get_speed) (void *cpu, double load);
        double (*get_available_speed) (void *cpu);
-       void (*init_bypass)(const char* id,double power);
+       void (*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);
      } s_surf_model_extension_cpu_t;
 
      /* Network model */
@@ -172,7 +177,7 @@ XBT_PUBLIC_DATA(routing_t) used_routing;
        double (*get_link_bandwidth) (const void *link);
        double (*get_link_latency) (const void *link);
        int (*link_shared) (const void *link);
-       void (*init_bypass) (const char *id,double intial_bandwidth,double initial_latency);
+       void (*create_resource) (char *name,double bw_initial,double lat_initial);
      } s_surf_model_extension_network_t;
 
      /** \brief Workstation model extension public
@@ -644,6 +649,24 @@ XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_latency;
 
 XBT_PUBLIC(double) get_cpu_power(const char *power);
 
+/*public interface to create resource bypassing the parser via cpu/network model
+ *
+ * see surfxml_parse.c
+ * */
+XBT_PUBLIC(void) surf_host_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);
+
+/**
+ * create link resource
+ * see network.c
+ * FIXME : shoudl have the same prototype as net_link_new
+ */
+XBT_PUBLIC(void) surf_link_create_resouce(char *name,
+        double bw_initial,double lat_initial);
 
 #include "surf/surf_resource.h"
 #include "surf/surf_resource_lmm.h"
index 67ef5a5..e5336e9 100644 (file)
@@ -504,33 +504,17 @@ static void cpu_im_action_update_index_heap(void *action, int i)
 {
   ((surf_action_cpu_Cas01_im_t) action)->index_heap = i;
 }
-
-static void cpu_im_init_bypass(const char* id,double power)
+static void cpu_im_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)
 {
-       /* FIXME
-        * the hard coded value must be passed as argument of the lua function
-        * depending on the number of arguments the user pass to function
-        * we'd affect it to the corresponding value
-        */
-       double power_peak = 0.0;
-       double power_scale = 0.0;
-       tmgr_trace_t power_trace = NULL;
-       //FIXME : hard coded value
-       e_surf_resource_state_t state_initial = SURF_RESOURCE_ON;
-       tmgr_trace_t state_trace = NULL;
-       power_peak = power;
-       //FIXME : hard coded value !!!
-       surf_parse_get_double(&power_scale, "1.0");
-       power_trace = tmgr_trace_new("");
-
-       //state_trace = tmgr_trace_new(A_surfxml_host_state_file);
-       current_property_set = xbt_dict_new();
-       cpu_im_new(xbt_strdup(id), power_peak, power_scale,
-                                              power_trace, state_initial, state_trace, current_property_set);
-
+       cpu_im_new(name,power_peak,power_scale,power_trace,
+                                         state_initial,state_trace,cpu_properties);
 }
 
-
 static void cpu_im_finalize(void)
 {
   void *cpu;
@@ -589,7 +573,7 @@ static void surf_cpu_im_model_init_internal(void)
   surf_cpu_model->extension.cpu.get_state = cpu_im_get_state;
   surf_cpu_model->extension.cpu.get_speed = cpu_im_get_speed;
   surf_cpu_model->extension.cpu.get_available_speed = cpu_im_get_available_speed;
-  surf_cpu_model->extension.cpu.init_bypass = cpu_im_init_bypass;
+  surf_cpu_model->extension.cpu.create_resource = cpu_im_create_resource;
 
   if (!cpu_im_maxmin_system) {
     sg_maxmin_selective_update = 1;
@@ -623,9 +607,3 @@ void surf_cpu_model_init_Cas01_im(const char *filename)
   cpu_im_define_callbacks(filename);
   xbt_dynar_push(model_list, &surf_cpu_model);
 }
-
-void surf_cpu_model_init_bypass_im(const char* id,double power)
-{
-       return surf_cpu_model->extension.cpu.
-               init_bypass(id,power);
-}
index 4dd36a2..7a75009 100644 (file)
@@ -588,36 +588,36 @@ static void net_action_set_max_duration(surf_action_t action, double duration)
 }
 
 
-static void network_init_bypass(const char *name,double initial_bandwidth,double initial_latency)
-{
- /**
-  * FIXME : Only values : name,bandwidth and latency are intercepted,
-  * the others properties for link still hard coded at this level !!
-  */
-         char *name_link;
-         double bw_initial;
-         tmgr_trace_t bw_trace;
-         double lat_initial;
-         tmgr_trace_t lat_trace;
-         e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
-         e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
-         tmgr_trace_t state_trace;
-
-
-         name_link = (char*)name;
-         bw_initial = initial_bandwidth;
-         bw_trace = tmgr_trace_new("");
-         lat_initial = initial_latency;
-         lat_trace = tmgr_trace_new("");
-         // FIXME Hard Coded Values
-         state_initial_link = SURF_RESOURCE_ON;
-         policy_initial_link = SURF_LINK_SHARED;
-         state_trace = tmgr_trace_new("");
-
-         net_link_new(name_link, bw_initial, bw_trace,
+/**
+ * FIXME : this should be done in the binding code !!
+ */
+void network_create_resource(char *name,
+        double initial_bandwidth,double initial_latency)
+{
+
+       char *name_link;
+       double bw_initial;
+       tmgr_trace_t bw_trace;
+       double lat_initial;
+       tmgr_trace_t lat_trace;
+       e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
+       e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
+       tmgr_trace_t state_trace;
+
+
+       name_link = (char*)name;
+       bw_initial = initial_bandwidth;
+       bw_trace = tmgr_trace_new("");
+       lat_initial = initial_latency;
+       lat_trace = tmgr_trace_new("");
+       // FIXME Hard Coded Values
+       state_initial_link = SURF_RESOURCE_ON;
+       policy_initial_link = SURF_LINK_SHARED;
+       state_trace = tmgr_trace_new("");
+
+       net_link_new(name_link, bw_initial, bw_trace,
                   lat_initial, lat_trace, state_initial_link, state_trace,
                   policy_initial_link, xbt_dict_new());
-
 }
 
 static void net_finalize(void)
@@ -658,7 +658,7 @@ static void surf_network_model_init_internal(void)
     net_get_link_bandwidth;
   surf_network_model->extension.network.get_link_latency = net_get_link_latency;
   surf_network_model->extension.network.link_shared = net_link_shared;
-  surf_network_model->extension.network.init_bypass = network_init_bypass;
+  surf_network_model->extension.network.create_resource = network_create_resource;
 
   if (!network_maxmin_system)
     network_maxmin_system = lmm_system_new();
@@ -801,8 +801,3 @@ void surf_network_model_init_Vegas(const char *filename)
 }
 
 
-void surf_network_model_init_bypass(const char *link_id,double initial_bw,double initial_lat)
-{
-       return surf_network_model->extension.network.
-               init_bypass(link_id,initial_bw,initial_lat);
-}
index 8fa98c0..88fad91 100644 (file)
@@ -1167,3 +1167,23 @@ static void add_randomness(void)
   xbt_dict_set(random_data_list, random_id, (void *) random, NULL);
 }
 
+void surf_host_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)
+{
+       return surf_cpu_model->extension.cpu.
+               create_resource(name,power_peak,power_scale,power_trace,state_initial,state_trace,cpu_properties);
+}
+
+
+void surf_link_create_resouce(char *name,
+        double bw_initial,
+        double lat_initial)
+{
+       return surf_network_model->extension.network.
+            create_resource(name,bw_initial,lat_initial);
+
+}