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

Hugo Andrade, Ola Benderius, Christian Berger, Ivica Crnkovic, Jan Bosch

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. We have observed that 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, and, in many cases, lack of expertise. 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. The framework has emerged as a result from discussions with multiple industrial partners that are at different levels of maturity in adopting heterogeneous computing. 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. Finally, we discuss the role of the framework and its integration with a typical software engineering process.

Knowledge Graph



Sign up or login to leave a comment