Supporting Intra-Task Parallelism in Real-Time Multiprocessor Systems
Ref: CISTER-TR-121007 Publication Date: Oct 2012
Supporting Intra-Task Parallelism in Real-Time Multiprocessor Systems
Ref: CISTER-TR-121007 Publication Date: Oct 2012Abstract:
Multiple programming models are emerging to address the increased need for dynamic task-level parallelism in
applications for multi-core processors and shared-memory parallel computing, presenting promising solutions
from a user-level perspective. Nonetheless, while high-level parallel languages offer a simple way for application
programmers to specify parallelism in a form that easily scales with problem size, they still leave the actual
scheduling of tasks to be performed at runtime. Therefore, if the underlying system cannot efficiently map those
tasks on the available cores, the benefits will be lost.
This is particularly important in modern real-time systems as their average workload is rapidly growing more
parallel, complex and computing-intensive, whilst preserving stringent timing constraints. However, as the realtime
scheduling theory has mostly been focused on sequential task models, a shift to parallel task models
introduces a completely new dimension to the scheduling problem.
Within this context, the work presented in this thesis considers how to dynamically schedule highly heterogeneous
parallel applications that require real-time performance guarantees on multi-core processors. A novel scheduling
approach called RTWS is proposed. RTWS combines the G-EDF scheduler with a priority-aware work-stealing load
balancing scheme, enabling parallel real-time tasks to be executed on more than one processor at a given time
instant. Two stealing sub-policies have arisen from this proposal and their suitability is discussed in detail.
Furthermore, this thesis describes the implementation of a new scheduling class in the Linux kernel concerning
RTWS, and extensively evaluate its feasibility. Experimental results demonstrate the greater scalability and lower
scheduling overhead of the proposed approach, comparatively to an existing real-time deadline-driven scheduling
policy for the Linux kernel, as well as reveal its better performance when considering tasks with intra-task
parallelism than without, even for short-living applications.
We show that busy-aware stealing is robust to small deviations from a strict priority schedule and conclude that
some priority inversion may be actually acceptable, provided it helps reduce contention, communication,
synchronisation and coordination between parallel threads.
Document:
Master Thesis, Instituto Superior de Engenharia do Porto.
Porto.
Record Date: 31, Oct, 2012