#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");
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;
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;
}
fclose(out);
+#ifdef HAVE_JEDULE
+ jedule_sd_dump();
+#endif
xbt_dynar_free_container(&ready_tasks);