Component Allocation Optimization for Heterogeneous CPU-GPU Embedded Systems

In a quest to improve system performance, embedded systems are today increasingly relying on heterogeneous platforms that combine different types of processing units such as CPUs, GPUs and FPGAs. However, having better hardware capability alone does not guarantee higher performance, how functionality is allocated onto the appropriate processing units strongly impacts the system performance as well. Yet, with this increase in hardware complexity, finding suitable allocation schemes is becoming a challenge as many new constraints and requirements must now be taken into consideration. In this paper, we present a formal model for allocation optimization of embedded systems which contains a mix of CPU and GPU processing nodes. The allocation takes into consideration the software and hardware architectures, the system requirements and criteria upon which the allocation should be optimized. In its current version, optimized allocation schemes are generated through an integer programming technique to balance the system resource utilization and to optimize the system performance using the GPU resources.

[1]  Takeo Kanade,et al.  GPU-accelerated real-time 3D tracking for humanoid locomotion and stair climbing , 2007, 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[2]  David Gerónimo Gómez,et al.  Survey of Pedestrian Detection for Advanced Driver Assistance Systems , 2010, IEEE Transactions on Pattern Analysis and Machine Intelligence.

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

[4]  Kevin Skadron,et al.  Accelerating Compute-Intensive Applications with GPUs and FPGAs , 2008, 2008 Symposium on Application Specific Processors.

[5]  Tobias Achterberg,et al.  Constraint integer programming , 2007 .

[6]  Michael T. M. Emmerich,et al.  An evolutionary multiobjective optimization approach to component-based software architecture design , 2011, 2011 IEEE Congress of Evolutionary Computation (CEC).

[7]  Bernhard Schätz,et al.  Deployment and Scheduling Synthesis for Mixed-Critical Shared-Memory Applications , 2013, 2013 20th IEEE International Conference and Workshops on Engineering of Computer Based Systems (ECBS).

[8]  Bora Uçar,et al.  Task assignment in heterogeneous computing systems , 2006, J. Parallel Distributed Comput..

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

[10]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[11]  Laurence A. Wolsey,et al.  Integer and Combinatorial Optimization , 1988, Wiley interscience series in discrete mathematics and optimization.

[12]  Ivica Crnkovic,et al.  Multi-criteria software component allocation on a heterogeneous platform , 2013, Proceedings of the ITI 2013 35th International Conference on Information Technology Interfaces.

[13]  Thorsten Koch,et al.  Rapid mathematical programming , 2005 .

[14]  Li Xiao,et al.  Effective load sharing on heterogeneous networks of workstations , 2000, Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000.

[15]  Klaus Mueller,et al.  IOP PUBLISHING PHYSICS IN MEDICINE AND BIOLOGY , 2007 .

[16]  Hubert Nguyen,et al.  GPU Gems 3 , 2007 .

[17]  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..

[18]  Laurence A. Wolsey,et al.  Integer and Combinatorial Optimization , 1988 .

[19]  Hyesoon Kim,et al.  An analytical model for a GPU architecture with memory-level and thread-level parallelism awareness , 2009, ISCA '09.

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

[21]  Masahiro Tsuchiya,et al.  A Task Allocation Model for Distributed Computing Systems , 1982, IEEE Transactions on Computers.