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.
翻译:异质计算是满足系统性能迅速增长需求的最重要计算解决方案之一,它通常允许在CPU上执行应用的主要流程,而计算最密集的任务则分配给一个或多个加速器,如GPUs和FPGAs。在这类平台上执行系统的重新设置非常可取,但主要由于软件复杂性的内在增加,也难以执行。在探索后,我们发现目前需要一种系统化的方法,支持工程师在重新构件过程中从CPU中心应用到在多元平台上执行的软件。在本文中,我们引入一个决定框架,协助工程师在重新构件软件任务中采用多式平台。它涵盖软件工程生命周期,分为五个步骤,包括要回答的问题,以便成功地解决与再构件程序有关的方面。我们从两种角度评估框架的可行性。首先,我们通过问卷调查了解从业人员的印象、关切和建议。然后,我们进行案例研究,展示在使用计算机视觉应用的域框中逐步应用。