Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
changing jedule binding behavior
[simgrid.git] / examples / simdag / scheduling / minmin_test.c
index 330eeba..ffc9e88 100644 (file)
 #include "xbt/ex.h"
 #include <string.h>
 
+#ifdef HAVE_JEDULE
+#include "simgrid/jedule/jedule_sd_binding.h"
+#endif
+
 XBT_LOG_NEW_DEFAULT_CATEGORY(test,
                              "Logging specific to this SimDag example");
 
@@ -116,10 +120,16 @@ static double finish_on_at(SD_task_t task, sg_host_t workstation)
         grand_parent_workstation_list =
             SD_task_get_workstation_list(grand_parent);
         /* Estimate the redistribution time from this parent */
-        redist_time =
-            SD_route_get_communication_time(grand_parent_workstation_list
-                                            [0], workstation,
-                                            SD_task_get_amount(parent));
+        if (SD_task_get_amount(parent) == 0){
+          redist_time= 0;
+        } else {
+          redist_time =
+            SD_route_get_latency(grand_parent_workstation_list[0],
+                                 workstation) +
+            SD_task_get_amount(parent) /
+            SD_route_get_bandwidth(grand_parent_workstation_list[0],
+                                 workstation);
+        }
         data_available =
             SD_task_get_finish_time(grand_parent) + redist_time;
 
@@ -140,14 +150,12 @@ static double finish_on_at(SD_task_t task, sg_host_t workstation)
 
     result = MAX(sg_host_get_available_at(workstation),
                last_data_available) +
-        sg_host_computation_time(workstation,
-                                            SD_task_get_amount(task));
+             SD_task_get_amount(task)/sg_host_speed(workstation);
   } else {
     xbt_dynar_free_container(&parents);
 
     result = sg_host_get_available_at(workstation) +
-        sg_host_computation_time(workstation,
-                                            SD_task_get_amount(task));
+              SD_task_get_amount(task)/sg_host_speed(workstation);
   }
   return result;
 }
@@ -371,6 +379,9 @@ int main(int argc, char **argv)
 
   fclose(out);
 
+#ifdef HAVE_JEDULE
+  jedule_sd_dump();
+#endif
 
   xbt_dynar_free_container(&ready_tasks);