Period-based load partitioning and assignment for large real-time applications
We propose a new approach to the problem of workload partitioning and assignment for very large distributed real-time systems, in which software components are typically organized hierarchically, and hardware components potentially span several shared and/or dedicated links. Existing approaches for load partitioning and assignment are based on either schedulability or communication. The first category attempts to construct a feasible schedule for various assignments and chooses the one that minimizes task lateness (or other similar criteria), while the second category partitions the workload heuristically in accordance with the amount of intertask communication. We propose, and argue for, a (new) third category based on task periods, which, among others, combines the ability of handling heterogeneity with excellent scalability. Our algorithm is a recursive invocation of two stages: clustering and assignment. The clustering stage partitions tasks and processors into clusters. The assignment stage maps task clusters to processor clusters. A later scheduling stage will compute a feasible schedule, if any, when the size of processor clusters reduces to one at the bottom of the recursion tree. We introduce a new clustering heuristic and evaluate elements of the period-based approach using simulations to verify its suitability for large real-time applications. Also presented is an example application drawn from the field of command and control that has the potential to benefit significantly from the proposed approach.
task allocation task partitioning inhomogeneous networks real-time scheduling