Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a makefile to build the simgrid dll
[simgrid.git] / src / surf / workstation_KCCFLN05.c
index 72194bd..9b51404 100644 (file)
@@ -266,8 +266,12 @@ static void update_actions_state(double now, double delta)
                                     action->lat_current);
       }
     }
+    DEBUG3("Action (%p) : remains (%g) updated by %g.",
+          action, action->generic_action.remains,
+          lmm_variable_getvalue(action->variable) * deltap);
     double_update(&(action->generic_action.remains),
                       lmm_variable_getvalue(action->variable) * deltap);
+
     if (action->generic_action.max_duration != NO_MAX_DURATION)
       double_update(&(action->generic_action.max_duration), delta);
 
@@ -567,7 +571,7 @@ static surf_action_t execute_parallel_task(int workstation_nb,
   if (parallel_task_network_link_set == NULL) {
     parallel_task_network_link_set = xbt_dict_new_ext(workstation_nb * workstation_nb * 10);
   }
-
+  
   /* Compute the number of affected resources... */
   for(i=0; i< workstation_nb; i++) {
     for(j=0; j< workstation_nb; j++) {
@@ -582,17 +586,20 @@ static surf_action_t execute_parallel_task(int workstation_nb,
        }
     }
   }
-
   nb_link = xbt_dict_length(parallel_task_network_link_set);
   xbt_dict_reset(parallel_task_network_link_set);
 
+
   for (i = 0; i<workstation_nb; i++)
     if(computation_amount[i]>0) nb_host++;
  
-  if(nb_link + workstation_nb == 0)
+
+  if(nb_link + nb_host == 0) /* was workstation_nb... */
     return NULL;
 
   action = xbt_new0(s_surf_action_workstation_KCCFLN05_t, 1);
+  DEBUG3("Creating a parallel task (%p) with %d cpus and %d links.",
+        action, nb_host,  nb_link);
   action->generic_action.using = 1;
   action->generic_action.cost = amount;
   action->generic_action.remains = amount;
@@ -949,7 +956,7 @@ static void parse_file(const char *file)
     if(!ROUTE(i,i).size) {
       if(!loopback)
        loopback = network_link_new(xbt_strdup("__MSG_loopback__"), 
-                                  498.00, NULL, 0.000015, NULL, 
+                                  498000000, NULL, 0.000015, NULL, 
                                   SURF_NETWORK_LINK_ON, NULL,
                                   SURF_NETWORK_LINK_FATPIPE);
       ROUTE(i,i).size=1;
@@ -1042,3 +1049,15 @@ void surf_workstation_resource_init_KCCFLN05(const char *filename)
 
   xbt_dynar_push(resource_list, &surf_workstation_resource);
 }
+
+void surf_workstation_resource_init_KCCFLN05_proportionnal(const char *filename)
+{
+  xbt_assert0(!surf_cpu_resource, "CPU resource type already defined");
+  xbt_assert0(!surf_network_resource, "network resource type already defined");
+  resource_init_internal();
+  parse_file(filename);
+
+  surf_workstation_resource->common_public->name = "Workstation KCCFLN05 (proportionnal)";
+  use_sdp_solver=1;
+  xbt_dynar_push(resource_list, &surf_workstation_resource);
+}