diff options
author | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-05-04 18:52:33 +0000 |
---|---|---|
committer | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-05-04 18:52:33 +0000 |
commit | c53dd85becf02b23439916594517747e913477a6 (patch) | |
tree | 0fccdc37d0ae730d6899aa2b55c3eea4269dc381 | |
parent | 34bd39bf74918f9800423724ad71986ac3a95a95 (diff) | |
download | ATCD-c53dd85becf02b23439916594517747e913477a6.tar.gz |
added filter function to output schedule and updated scripts to ignore empty files
10 files changed, 45 insertions, 12 deletions
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/processor_util.sh b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/processor_util.sh index 3e4f53ef456..120c7a3a7c5 100755 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/processor_util.sh +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/processor_util.sh @@ -1,4 +1,4 @@ -zf#!/bin/bash +#!/bin/bash EXPERIMENT_NAME=processor_util DECORAM_BIN=../../bin DATA_DIR=$1 @@ -11,8 +11,10 @@ for ALGORITHM in pftrmff aftrmff frftrmff bsftrmbf; do \ for TASK_NO in 10 20 40 80 160; do \ echo "$TASK_NO tasks:" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat && \ for BACKUP_NO in 1 2 3 4; do \ - echo "count processors used by $ALGORITHM for $BACKUP_NO backups and $TASK_NO tasks ..." && \ - echo "$BACKUP_NO backups: `$DECORAM_BIN/scheck -c -f ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt`" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat; \ + if [ -s ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt ]; then \ + echo "count processors used by $ALGORITHM for $BACKUP_NO backups and $TASK_NO tasks ..." && \ + echo "$BACKUP_NO backups: `$DECORAM_BIN/scheck -c -f ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt`" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat; \ + fi;\ done; \ done; \ done
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/schedulability.sh b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/schedulability.sh index a61108e4a07..eb60a0c5f70 100755 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/schedulability.sh +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/schedulability.sh @@ -1,4 +1,4 @@ -zf#!/bin/bash +#!/bin/bash EXPERIMENT_NAME=schedulability DECORAM_BIN=../../bin DATA_DIR=$1 @@ -11,8 +11,10 @@ for ALGORITHM in pftrmff aftrmff frftrmff bsftrmbf; do \ for TASK_NO in 10 20 40 80 160; do \ echo "$TASK_NO tasks:" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat && \ for BACKUP_NO in 1 2 3 4; do \ - echo "count processors used by $ALGORITHM for $BACKUP_NO backups and $TASK_NO tasks ..." && \ - echo "$BACKUP_NO backups: `$DECORAM_BIN/scheck -f ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt`" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat; \ + if [ -s ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt ]; then \ + echo "count processors used by $ALGORITHM for $BACKUP_NO backups and $TASK_NO tasks ..." && \ + echo "$BACKUP_NO backups: `$DECORAM_BIN/scheck -f ./$DATA_DIR/$ALGORITHM-$BACKUP_NO-backups-$TASK_NO-tasks.txt`" >> ./$RESULT_DIR/$EXPERIMENT_NAME-$ALGORITHM.dat; \ + fi;\ done; \ done; \ done
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Basic.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Basic.cpp index 1d61baaecba..f5d905347d5 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Basic.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Basic.cpp @@ -35,7 +35,7 @@ FTRMFF_Basic::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Bestfit.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Bestfit.cpp index 1b6ea8915fd..133f862ddd1 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Bestfit.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Bestfit.cpp @@ -30,7 +30,7 @@ FTRMFF_Bestfit::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Binary_Search.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Binary_Search.cpp index a31d4cb7a05..0126bf6294a 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Binary_Search.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Binary_Search.cpp @@ -38,7 +38,7 @@ FTRMFF_Binary_Search::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } @@ -166,3 +166,4 @@ FTRMFF_Binary_Search_Algorithm::create_scheduling_algorithm ( return new FTRMFF_Worstfit_Algorithm (processors, consistency_level_); } + diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp index 6aa5b09e2e7..aabd1f5bed0 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp @@ -36,7 +36,7 @@ FTRMFF_Forward_Packing::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Primary.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Primary.cpp index b0802ed6642..dc552976db8 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Primary.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Primary.cpp @@ -27,7 +27,7 @@ FTRMFF_Primary::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Worstfit.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Worstfit.cpp index 9ae919f7f83..5c4310c33a3 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Worstfit.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Worstfit.cpp @@ -29,7 +29,7 @@ FTRMFF_Worstfit::operator () (const FTRMFF_Input & input) output.schedule = algorithm (input.tasks); output.unscheduled_tasks = algorithm.get_unschedulable (); - DBG_OUT (algorithm.schedule ()); + DBG_OUT (remove_empty_processors (algorithm.schedule ())); return output; } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.cpp index 28042e15186..f0551d7c847 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.cpp @@ -13,6 +13,31 @@ #include <sstream> #include "Schedule.h" +SCHEDULE remove_empty_processors (const SCHEDULE & schedule) +{ + SCHEDULE new_schedule; + + // use a new list of processor names to assign the scheduled entries + PROCESSOR_LIST new_processors = create_processors (schedule.size ()); + PROCESSOR_LIST::const_iterator next_processor = new_processors.begin (); + + for (SCHEDULE::const_iterator it = schedule.begin (); + it != schedule.end (); + ++it) + { + // only copy the entry into the new schedule if the processor + // contains tasks + if (!it->second.empty ()) + { + // use a new processor name as key + new_schedule[*next_processor] = it->second; + ++next_processor; + } + } + + return new_schedule; +} + SCHEDULING_MAP transform_schedule (const SCHEDULE & schedule) { diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.h index ec0431dd36e..1f88a6ca64a 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.h +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.h @@ -85,6 +85,9 @@ class Ranking_Algorithm : public std::binary_function <SCHEDULE_RESULT_LIST, /// @return schedule in the form Task -> Processor SCHEDULING_MAP transform_schedule (const SCHEDULE & schedule); +/// removes empty processors and renames processors +SCHEDULE remove_empty_processors (const SCHEDULE & schedule); + /// enters a list of tasks into the schedule according to its /// ScheduleResult entry. void add_schedule_results (const SCHEDULE_RESULT_LIST & result_list, |