X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/91ca8dc9a60dbe1d4ded572f226fb388e07dd0d6..bb1158bb1e02c633571b8731326e1af36a86306a:/examples/simdag/dax/dax_test.c diff --git a/examples/simdag/dax/dax_test.c b/examples/simdag/dax/dax_test.c index 9a97ff94da..05c9b58f7d 100644 --- a/examples/simdag/dax/dax_test.c +++ b/examples/simdag/dax/dax_test.c @@ -9,6 +9,7 @@ #include #include "simdag/simdag.h" #include "xbt/log.h" +#include "xbt/ex.h" XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example"); @@ -36,6 +37,7 @@ int main(int argc, char **argv) { dax=SD_daxload(argv[2]); /* Display all the tasks */ + INFO0("------------------- Display all tasks of the loaded DAG ---------------------------"); xbt_dynar_foreach(dax,cursor,task) { SD_task_dump(task); } @@ -48,6 +50,38 @@ int main(int argc, char **argv) { fprintf(out,"}\n"); fclose(out); + /* Schedule them all on the first workstation */ + INFO0("------------------- Schedule tasks ---------------------------"); + const SD_workstation_t *ws_list = SD_workstation_get_list(); + xbt_dynar_foreach(dax,cursor,task) { + if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ) + SD_task_schedulel(task,1,ws_list[0]); + } + + INFO0("------------------- Run the schedule ---------------------------"); + SD_simulate(-1); + INFO0("------------------- Produce the trace file---------------------------"); + xbt_dynar_foreach(dax,cursor,task) { + int kind = SD_task_get_kind(task); + SD_workstation_t *wsl = SD_task_get_workstation_list(task); + switch (kind) { + case SD_TASK_COMP_SEQ: + INFO4("[%f] %s compute %f # %s",SD_task_get_start_time(task), + SD_workstation_get_name(wsl[0]),SD_task_get_amount(task), + SD_task_get_name(task)); + break; + case SD_TASK_COMM_E2E: + INFO5("[%f] %s send %s %f # %s",SD_task_get_start_time(task), + SD_workstation_get_name(wsl[0]),SD_workstation_get_name(wsl[1]), + SD_task_get_amount(task), SD_task_get_name(task)); + INFO5("[%f] %s recv %s %f # %s",SD_task_get_start_time(task), + SD_workstation_get_name(wsl[1]),SD_workstation_get_name(wsl[0]), + SD_task_get_amount(task), SD_task_get_name(task)); + break; + default: + xbt_die(bprintf("Task %s is of unknown kind %d",SD_task_get_name(task),SD_task_get_kind(task))); + } + } /* exit */ SD_exit(); return 1;