HPM-Frame: A Decision Framework for Executing Software on Heterogeneous Platforms

Heterogeneous computing is one of the most important computational solutions to meet rapidly increasing demands on system performance. It typically allows the main flow of applications to be executed on a CPU while the most computationally intensive tasks are assigned to one or more accelerators, such as GPUs and FPGAs. The refactoring of systems for execution on such platforms is highly desired but also difficult to perform, mainly due the inherent increase in software complexity. After exploration, we have identified a current need for a systematic approach that supports engineers in the refactoring process -- from CPU-centric applications to software that is executed on heterogeneous platforms. In this paper, we introduce a decision framework that assists engineers in the task of refactoring software to incorporate heterogeneous platforms. It covers the software engineering lifecycle through five steps, consisting of questions to be answered in order to successfully address aspects that are relevant for the refactoring procedure. We evaluate the feasibility of the framework in two ways. First, we capture the practitioner's impressions, concerns and suggestions through a questionnaire. Then, we conduct a case study showing the step-by-step application of the framework using a computer vision application in the automotive domain.

[1]  Yao Zhang,et al.  Parallel Computing Experiences with CUDA , 2008, IEEE Micro.

[2]  Ivica Crnkovic,et al.  Software Challenges in Heterogeneous Computing: A Multiple Case Study in Industry , 2019, 2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[3]  Hugo Sica de Andrade,et al.  Software Deployment on Heterogeneous Platforms: A Systematic Mapping Study , 2019 .

[4]  Séverine Sentilles,et al.  Flexible Components for Development of Embedded Systems with GPUs , 2017, 2017 24th Asia-Pacific Software Engineering Conference (APSEC).

[5]  Ivica Crnkovic,et al.  Modelling for Hardware and Software Partitioning Based on Multiple Properties , 2013, 2013 39th Euromicro Conference on Software Engineering and Advanced Applications.

[6]  Arkadeb Ghosal,et al.  A methodology for the design and deployment of reliable systems on heterogeneous platforms , 2012, 2012 International Conference on Reconfigurable Computing and FPGAs.

[7]  Ivica Crnkovic,et al.  A Review on Software Architectures for Heterogeneous Platforms , 2018, 2018 25th Asia-Pacific Software Engineering Conference (APSEC).

[8]  Ivica Crnkovic,et al.  Partitioning Decision Process for Embedded Hardware and Software Deployment , 2013, 2013 IEEE 37th Annual Computer Software and Applications Conference Workshops.

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

[10]  Christopher Dyken,et al.  State-of-the-art in heterogeneous computing , 2010, Sci. Program..

[11]  Pasi Kuvaja,et al.  An Exploratory Study of DevOps Extending the Dimensions of DevOps with Practices , 2016 .

[12]  Ivica Crnkovic,et al.  An extensible framework for software configuration optimization on heterogeneous computing systems: Time and energy case study , 2019, Inf. Softw. Technol..

[13]  Joel Emer,et al.  Eyeriss: an Energy-efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks Accessed Terms of Use , 2022 .

[14]  Ivica Crnkovic,et al.  Architectural Decisions for HW/SW Partitioning Based on Multiple Extra-Functional Properties , 2014, 2014 IEEE/IFIP Conference on Software Architecture.

[15]  Mark A. Franklin,et al.  A Federated Simulation Environment for Hybrid Systems , 2007, 21st International Workshop on Principles of Advanced and Distributed Simulation (PADS'07).

[16]  Daniel Pacheco Lacerda,et al.  Design Science Research: A Method for Science and Technology Advancement , 2014 .