const SD_workstation_t *workstations;
SD_workstation_t w1;
SD_workstation_t w2;
- const char *name1;
- const char *name2;
+ const char *name1 = NULL;
+ const char *name2 = NULL;
const double computation_amount1 = 2000000;
const double computation_amount2 = 1000000;
const double communication_amount12 = 2000000;
const SD_link_t *route;
int route_size;
SD_task_t taskA;
- SD_task_t taskB;
- SD_task_t taskC;
- SD_task_t taskD;
+ SD_task_t taskB, checkB;
+ SD_task_t taskC, checkC;
+ SD_task_t taskD, checkD;
xbt_ex_t ex;
/* initialisation of SD */
/* test the estimation functions (use small_platform.xml) */
workstations = SD_workstation_get_list();
+
+
+ for (i = 0; i < SD_workstation_get_number(); i++) {
+ INFO1("name : %s", SD_workstation_get_name(workstations[i]));
+ }
+
w1 = workstations[0];
w2 = workstations[1];
name1 = SD_workstation_get_name(w1);
name2 = SD_workstation_get_name(w2);
+
route = SD_route_get_list(w1, w2);
+
route_size = SD_route_get_size(w1, w2);
+
taskA = SD_task_create("Task A", NULL, 10.0);
taskB = SD_task_create("Task B", NULL, 40.0);
taskC = SD_task_create("Task C", NULL, 30.0);
taskD = SD_task_create("Task D", NULL, 60.0);
- INFO3("Computation time for %f flops on %s: %f", computation_amount1, name1,
- SD_workstation_get_computation_time(w1, computation_amount1));
- INFO3("Computation time for %f flops on %s: %f", computation_amount2, name2,
- SD_workstation_get_computation_time(w2, computation_amount2));
+ INFO3("Computation time for %f flops on %s: %f", computation_amount1,
+ name1, SD_workstation_get_computation_time(w1,
+ computation_amount1));
+ INFO3("Computation time for %f flops on %s: %f", computation_amount2,
+ name2, SD_workstation_get_computation_time(w2,
+ computation_amount2));
INFO2("Route between %s and %s:", name1, name2);
for (i = 0; i < route_size; i++) {
INFO3("\tLink %s: latency = %f, bandwidth = %f",
- SD_link_get_name(route[i]), SD_link_get_current_latency(route[i]),
+ SD_link_get_name(route[i]),
+ SD_link_get_current_latency(route[i]),
SD_link_get_current_bandwidth(route[i]));
}
INFO2("Route latency = %f, route bandwidth = %f",
TRY {
SD_task_dependency_add(NULL, NULL, taskA, taskA); /* shouldn't work and must raise an exception */
- xbt_assert0(0, "Hey, I can add a dependency between Task A and Task A!");
+ xbt_assert0(0,
+ "Hey, I can add a dependency between Task A and Task A!");
}
CATCH(ex) {
}
const int workstation_number = 2;
const SD_workstation_t workstation_list[] = { w1, w2 };
double computation_amount[] =
- { computation_amount1, computation_amount2 };
+ { computation_amount1, computation_amount2 };
double communication_amount[] = {
0, communication_amount12,
communication_amount21, 0
};
- SD_task_t *changed_tasks;
+ xbt_dynar_t changed_tasks;
double rate = -1.0;
/* estimated time */
computation_amount, communication_amount, rate);
changed_tasks = SD_simulate(-1.0);
- xbt_assert0(changed_tasks[0] == taskD &&
- changed_tasks[1] == taskC &&
- changed_tasks[2] == taskB &&
- changed_tasks[3] == NULL, "Unexpected simulation results");
- xbt_free(changed_tasks);
+ xbt_dynar_get_cpy(changed_tasks, 0, &checkD);
+ xbt_dynar_get_cpy(changed_tasks, 1, &checkC);
+ xbt_dynar_get_cpy(changed_tasks, 2, &checkB);
+
+ xbt_assert0(checkD == taskD &&
+ checkC == taskC &&
+ checkB == taskB, "Unexpected simulation results");
+
+ xbt_dynar_free_container(&changed_tasks);
}
DEBUG0("Destroying tasks...");