diff options
author | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-05-01 16:13:40 +0000 |
---|---|---|
committer | wolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-05-01 16:13:40 +0000 |
commit | 1d190b21169da60c516600db67c8aa70db9d0c8b (patch) | |
tree | 65a51f792d2527693964142dc2b41647c8e5fea2 | |
parent | 5821a379e81584255882f225cd4879e863a3d88a (diff) | |
download | ATCD-1d190b21169da60c516600db67c8aa70db9d0c8b.tar.gz |
changed update_schedule () logic in the scheduler classes
7 files changed, 37 insertions, 48 deletions
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 4459149188d..e6298660413 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 @@ -94,6 +94,10 @@ FTRMFF_Forward_Packing_Algorithm::operator () (const TASK_LIST & tasks) unschedulable_.push_back (pg); break; } + else + { + scheduler_->update_schedule (r); + } TRACE (*task_it << " -> " << r.processor); } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp index 0b3de90d6d1..c60dba0d4ce 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp @@ -97,34 +97,32 @@ Forward_Ranking_Scheduler::schedule_task (const Task & task, } void -Forward_Ranking_Scheduler::update_schedule (const Task & task, - const Processor & processor) +Forward_Ranking_Scheduler::update_schedule (const ScheduleResult & result) { - this->Scheduler::update_schedule (task, processor); + this->Scheduler::update_schedule (result); - this->update_failure_map (task, processor); + this->update_failure_map (result); } void -Forward_Ranking_Scheduler::update_failure_map (const Task & task, - const Processor & /* processor */) +Forward_Ranking_Scheduler::update_failure_map (const ScheduleResult & result) { PROCESSOR_SET proc_dependencies; REPLICA_GROUPS::iterator it = - replica_groups_.find (primary_name (task)); + replica_groups_.find (primary_name (result.task)); if (it != replica_groups_.end ()) { for (TASK_POSITIONS::iterator tp_it = it->second.begin (); - tp_it != it->second.begin () + task.rank; + tp_it != it->second.begin () + result.task.rank; ++tp_it) { proc_dependencies.insert (tp_it->first); } } - failure_map_.bind (task.name.c_str (), proc_dependencies); + failure_map_.bind (result.task.name.c_str (), proc_dependencies); TRACE ("Failure Map: " << failure_map_); } diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h index 096c62cec93..f59767610a1 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h @@ -53,15 +53,13 @@ public: const Processor & processor); protected: - virtual void update_schedule (const Task & task, - const Processor & processor); + virtual void update_schedule (const ScheduleResult & result); private: - void update_failure_map (const Task & task, - const Processor & processor); + void update_failure_map (const ScheduleResult & result); bool check_for_existing_replicas (const Task & task, - const Processor & processor); + const Processor & processor); PROCESSOR_SET replica_processors (const Task & task); diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp index 233dfb08996..a212277ad52 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp @@ -98,12 +98,11 @@ private: }; void -Packing_Scheduler::update_schedule (const Task & task, - const Processor & processor) +Packing_Scheduler::update_schedule (const ScheduleResult & result) { - this->Scheduler::update_schedule (task, processor); + this->Scheduler::update_schedule (result); - this->update_task_groups (task, processor); + this->update_task_groups (result); } double @@ -200,30 +199,29 @@ private: }; void -Packing_Scheduler::update_task_groups (const Task & task, - const Processor & processor) +Packing_Scheduler::update_task_groups (const ScheduleResult & result) { // add task to existing task groups - TASK_LISTS & local_groups = task_groups_[processor]; + TASK_LISTS & local_groups = task_groups_[result.processor]; - if (task.rank == 0) + if (result.task.rank == 0) { // if this is a primary check wether there are other // primaries on this processors if (!std::accumulate (local_groups.begin (), local_groups.end (), false, - TaskListPrimaryAccumulator (task))) + TaskListPrimaryAccumulator (result.task))) { // create a new group if there is no primary yet TASK_LIST new_list; - new_list.push_back (task); + new_list.push_back (result.task); local_groups.push_back (new_list); } } else // if the task is a backup task { - this->add_backup (task, local_groups); + this->add_backup (result.task, local_groups); } TRACE (task_groups_); diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h index c700b126b11..0fd75c17ecc 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h @@ -35,12 +35,10 @@ public: const Processor & processor); protected: - virtual void update_schedule (const Task & task, - const Processor & processor); + virtual void update_schedule (const ScheduleResult & result); private: - void update_task_groups (const Task & task, - const Processor & processor); + void update_task_groups (const ScheduleResult & result); void add_backup (const Task & task, TASK_LISTS & tg); diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp index 3d6d3403a27..b6b62c95a92 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp @@ -43,9 +43,6 @@ Scheduler::operator () (const Task & task) result.wcrt = wcrt; result.processor = processor_it->first; - // add the task to the schedule - this->update_schedule (task, processor_it->first); - break; } } // end for @@ -54,33 +51,31 @@ Scheduler::operator () (const Task & task) } void -Scheduler::update_schedule (const Task & task, - const Processor & processor) +Scheduler::update_schedule (const ScheduleResult & result) { - schedule_[processor].push_back (task); + schedule_[result.processor].push_back (result.task); - this->update_replica_groups (task, processor); + this->update_replica_groups (result); } void -Scheduler::update_replica_groups (const Task & task, - const Processor & processor) +Scheduler::update_replica_groups (const ScheduleResult & result) { // create entry - TASK_POSITION tp (processor, - task); + TASK_POSITION tp (result.processor, + result.task); // add entry to respective replica group - if (task.rank == 0) + if (result.task.rank == 0) { // create a new group TASK_POSITIONS group; group.push_back (tp); - replica_groups_[primary_name (task)] = group; + replica_groups_[primary_name (result.task)] = group; } else { - replica_groups_[primary_name (task)].push_back (tp); + replica_groups_[primary_name (result.task)].push_back (tp); } TRACE (replica_groups_); diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h index 0a4b4fc353b..66b82213b66 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h @@ -44,12 +44,10 @@ public: // getter method for the schedule SCHEDULE schedule () const; -protected: - virtual void update_schedule (const Task & task, - const Processor & processor); + virtual void update_schedule (const ScheduleResult & result); - void update_replica_groups (const Task & task, - const Processor & processor); +protected: + void update_replica_groups (const ScheduleResult & result); protected: SCHEDULE schedule_; |