summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-04 18:52:33 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-04 18:52:33 +0000
commitc53dd85becf02b23439916594517747e913477a6 (patch)
tree0fccdc37d0ae730d6899aa2b55c3eea4269dc381
parent34bd39bf74918f9800423724ad71986ac3a95a95 (diff)
downloadATCD-c53dd85becf02b23439916594517747e913477a6.tar.gz
added filter function to output schedule and updated scripts to ignore empty files
-rwxr-xr-xTAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/processor_util.sh8
-rwxr-xr-xTAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/experiments/packing/schedulability.sh8
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Basic.cpp2
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Bestfit.cpp2
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Binary_Search.cpp3
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp2
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Primary.cpp2
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Worstfit.cpp2
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.cpp25
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Schedule.h3
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,