3 #include "simdag/simdag.h"
6 int main(int argc, char **argv) {
10 printf ("Usage: %s platform_file deployment_file\n", argv[0]);
11 printf ("example: %s msg_platform.xml msg_deployment.xml\n", argv[0]);
17 printf ("Usage: %s platform_file\n", argv[0]);
18 printf ("example: %s msg_platform.xml\n", argv[0]);
22 /* initialisation of SD */
25 /* creation of the environment */
26 char * platform_file = argv[1];
27 SD_create_environment(platform_file);
29 /* creation of the tasks and their dependencies */
30 SD_task_t taskA = SD_task_create("Task A", NULL, 10.0);
31 SD_task_t taskB = SD_task_create("Task B", NULL, 40.0);
32 SD_task_t taskC = SD_task_create("Task C", NULL, 30.0);
35 SD_task_dependency_add(NULL, NULL, taskA, taskB);
36 SD_task_dependency_add(NULL, NULL, taskA, taskC);
41 SD_task_dependency_add(NULL, NULL, taskA, taskA); /* shouldn't work and must raise an exception */
42 xbt_assert0(0, "Hey, I can add a dependency between Task A and Task A!");
48 SD_task_dependency_add(NULL, NULL, taskA, taskB); /* shouldn't work and must raise an exception */
49 xbt_assert0(0, "Oh oh, I can add an already existing dependency!");
54 SD_task_dependency_remove(taskA, taskB);
57 SD_task_dependency_remove(taskC, taskA); /* shouldn't work and must raise an exception */
58 xbt_assert0(0, "Dude, I can remove an unknown dependency!");
64 SD_task_dependency_remove(taskC, taskC); /* shouldn't work and must raise an exception */
65 xbt_assert0(0, "Wow, I can remove a dependency between Task C and itself!");
69 /* if everything is ok, no exception is forwarded or rethrown by main() */
72 /* SD_task_watch(taskA, SD_SCHEDULED);
73 SD_task_watch(taskA, SD_DONE);
74 SD_task_unwatch(taskA, SD_SCHEDULED);
75 SD_task_watch(taskA, SD_DONE);
76 SD_task_watch(taskA, SD_SCHEDULED);*/
78 SD_task_watch(taskA, SD_SCHEDULED);
80 /* let's launch the simulation! */
82 int workstation_number = 2;
83 SD_workstation_t *workstation_list = SD_workstation_get_list();
84 double computation_amount[] = {100, 200};
85 double communication_amount[] =
92 /* printf("Scheduling task A (state = %d)...\n", SD_task_get_state(taskA));*/
93 SD_task_schedule(taskA, workstation_number, workstation_list,
94 computation_amount, communication_amount, rate);
95 /* printf("Done. Task A state: %d\n", SD_task_get_state(taskA));*/
97 printf("Launching simulation...\n");
100 SD_task_destroy(taskA);
101 SD_task_destroy(taskB);
102 SD_task_destroy(taskC);