From 54b94f9670b0fbf266af0f174ada8a6ae51d1dc6 Mon Sep 17 00:00:00 2001 From: suter Date: Tue, 25 Sep 2012 15:24:54 +0200 Subject: [PATCH] test works fine with typed tasks. Add extra testing for parallel task (scheduled on one host), but there is something strange happening ... --- examples/simdag/sd_fail.c | 50 +++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/examples/simdag/sd_fail.c b/examples/simdag/sd_fail.c index 39ffe5d493..0c19e37d02 100644 --- a/examples/simdag/sd_fail.c +++ b/examples/simdag/sd_fail.c @@ -16,7 +16,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(sd_fail, int main(int argc, char **argv) { SD_task_t task; - + double computation_amount[1]; + double communication_amount[2] = { 0 }; + SD_workstation_t workstation_list[1]; /* initialization of SD */ SD_init(&argc, argv); @@ -25,7 +27,7 @@ int main(int argc, char **argv) /* creation of a single task that will poorly fail when the workstation * will stop */ - + XBT_INFO("First test: COMP_SEQ task"); task = SD_task_create_comp_seq("Poor task", NULL, 2e10); XBT_INFO("Schedule task '%s' on workstation 'Faulty Host'", @@ -37,11 +39,11 @@ int main(int argc, char **argv) SD_task_dump(task); - XBT_INFO("Task %s has failed. %.f flops remain to be done", + XBT_INFO("Task '%s' has failed. %.f flops remain to be done", SD_task_get_name(task), SD_task_get_remaining_amount(task)); - XBT_INFO("let's unschedule taks %s and reschedule it on the 'Safe Host'", + XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'", SD_task_get_name(task)); SD_task_unschedule(task); SD_task_schedulel(task, 1, SD_workstation_get_by_name("Safe Host")); @@ -56,7 +58,47 @@ int main(int argc, char **argv) SD_task_get_finish_time(task)); SD_task_destroy(task); + task=NULL; + + XBT_INFO("Second test: NON TYPED task"); + + task = SD_task_create("Poor parallel task", NULL, 2e10); + computation_amount[0] = 2e10; + + XBT_INFO("Schedule task '%s' on workstation 'Faulty Host'", + SD_task_get_name(task)); + + workstation_list[0] = SD_workstation_get_by_name("Faulty Host"); + SD_task_schedule(task, 1, workstation_list, + computation_amount, communication_amount,-1); + SD_simulate(-1.0); + + SD_task_dump(task); + + XBT_INFO("Task '%s' has failed. %.f flops remain to be done", + SD_task_get_name(task), + SD_task_get_remaining_amount(task)); + + XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'", + SD_task_get_name(task)); + SD_task_unschedule(task); + + workstation_list[0] = SD_workstation_get_by_name("Safe Host"); + + SD_task_schedule(task, 1, workstation_list, + computation_amount, communication_amount,-1); + + XBT_INFO("Run the simulation again"); + SD_simulate(-1.0); + + SD_task_dump(task); + XBT_INFO("Task '%s' start time: %f, finish time: %f", + SD_task_get_name(task), + SD_task_get_start_time(task), + SD_task_get_finish_time(task)); + + SD_task_destroy(task); SD_exit(); return 0; } -- 2.20.1