A Two-Layer Component-Based Allocation for Embedded Systems with GPUs

Component-based development is a software engineering paradigm that can facilitate the construction of embedded systems and tackle its complexities. The modern embedded systems have more and more demanding requirements. One way to cope with such a versatile and growing set of requirements is to employ heterogeneous processing power, i.e., CPU–GPU architectures. The new CPU–GPU embedded boards deliver an increased performance but also introduce additional complexity and challenges. In this work, we address the component-to-hardware allocation for CPU–GPU embedded systems. The allocation for such systems is much complex due to the increased amount of GPU-related information. For example, while in traditional embedded systems the allocation mechanism may consider only the CPU memory usage of components to find an appropriate allocation scheme, in heterogeneous systems, the GPU memory usage needs also to be taken into account in the allocation process. This paper aims at decreasing the component-to-hardware allocation complexity by introducing a two-layer component-based architecture for heterogeneous embedded systems. The detailed CPU–GPU information of the system is abstracted at a high-layer by compacting connected components into single units that behave as regular components. The allocator, based on the compacted information received from the high-level layer, computes, with a decreased complexity, feasible allocation schemes. In the last part of the paper, the two-layer allocation method is evaluated using an existing embedded system demonstrator; namely, an underwater robot.

[1]  Sanaz Mostaghim,et al.  The automotive deployment problem: A practical application for constrained multiobjective evolutionary optimisation , 2010, IEEE Congress on Evolutionary Computation.

[2]  Mehrdad Saadatmand,et al.  Modeling Security Aspects in Distributed Real-Time Component-Based Embedded Systems , 2012, 2012 Ninth International Conference on Information Technology - New Generations.

[3]  Kang G. Shin,et al.  Component allocation with multiple resource constraints for large embedded real-time software design , 2004, Proceedings. RTAS 2004. 10th IEEE Real-Time and Embedded Technology and Applications Symposium, 2004..

[4]  Séverine Sentilles,et al.  Allocation Optimization for Component-Based Embedded Systems with GPUs , 2018, 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[5]  Sam Malek,et al.  An energy consumption framework for distributed java-based systems , 2007, ASE.

[6]  Lars Grunske,et al.  Software Architecture Optimization Methods: A Systematic Literature Review , 2013, IEEE Transactions on Software Engineering.

[7]  Michael Tiegelkamp,et al.  IEC 61131-3: Programming Industrial Automation Systems: Concepts and Programming Languages, Requirements for Programming Systems, Decision-Making Aids , 2001 .

[8]  S. Baruah,et al.  Task partitioning upon heterogeneous multiprocessor platforms , 2004, Proceedings. RTAS 2004. 10th IEEE Real-Time and Embedded Technology and Applications Symposium, 2004..

[9]  Ivica Crnkovic,et al.  An Extended Model for Multi-Criteria Software Component Allocation on a Heterogeneous Embedded Platform , 2013, J. Comput. Inf. Technol..

[10]  Jukka Mäki-Turja,et al.  The Rubus component model for resource constrained real-time systems , 2008, 2008 International Symposium on Industrial Embedded Systems.

[11]  Lars Asplund,et al.  The Black Pearl: An Autonomous Underwater Vehicle , 2013 .

[12]  Feng Zhao,et al.  Energy-optimal software partitioning in heterogeneous multiprocessor embedded systems , 2008, 2008 45th ACM/IEEE Design Automation Conference.