The Design and Implementation of MCFlow: a Real-time Multi-core Aware Middleware for Dependent Task Graphs
Technical Report Number
Modern computer architectures have evolved from uni-processor platforms to multi-processor and multi-core plat- forms, but traditional real-time distributed middleware such as RT-CORBA has not kept pace with that evolution. To address those issues, this paper describes the design and implementation of MCFlow, a new real-time distributed middleware for dependent task graphs running on multi-core platforms. MCFlow provides the following contributions to the state of the art in real-time middleware: (1) it provides an efficient C++ based component model through which computations can be configured flexibly for execution within a single core, across cores of a common host, or spanning multiple hosts; (2) it allows optimizations for inter-component communication to avoid data copying without sacrificing the parallel executability of data dependent tasks; (3) it strictly separates timing and functional concerns of an application so that they can evolve and can be configured independently; and (4) it provides a novel event dispatching architecture that uses lock free algorithms to avoid mutex locking and reduce memory contention, CPU context switching, and priority inversion. We also present an empirical evaluation that demonstrates the efficacy of our approach.
Huang, Huang-Ming; Gill, Christopher; and Lu, Chenyang, " The Design and Implementation of MCFlow: a Real-time Multi-core Aware Middleware for Dependent Task Graphs" Report Number: WUCSE-2010-57 (2010). All Computer Science and Engineering Research.
Permanent URL: http://dx.doi.org/10.7936/K71N7ZBT