An empirical study of data decomposition for software parallelization

An empirical study of data decomposition for software parallelization
复制标题

软件并行化数据分解的实证研究

DOI:
10.1016/j.jss.2016.02.002
复制
发表时间:
2017
期刊:
J. Syst. Softw.
影响因子:
--
通讯作者:
J. Collins
J. Collins
中科院分区:
--
文献类型:
--
作者:
A. Meade;D. Deeptimahanti;J. Buckley;J. Collins

文献摘要

被引文献

相似文献

上下文:多核架构正变得越来越普遍,软件专业人员正在寻求利用分布式内存架构的功能。并行化软件应用程序的过程可能非常繁琐且容易出错,尤其是数据分解任务。研究数据分解和通信复杂性的实证研究是缺乏的。目标:我们的目标有三个:(i)获得基于经验的数据分解任务的理解,作为软件应用程序并行化的一部分;(ii)确定工具的关键需求,以帮助开发人员完成这项任务,以及(iii)评估当前的技术水平。方法:采用访谈研究、参与者-观察者案例研究、焦点小组研究和抽样调查等多种方法进行实证研究。实证调查涉及与三个行业伙伴的合作:IBM的高性能计算中心、爱尔兰高端计算中心(ICHEC)和JBA咨询公司。结果:本文将数据分解作为多核架构中并行化应用程序的最普遍任务之一。根据我们的研究,我们确定了工具支持的十个关键需求,以帮助HPC开发人员在这一领域。我们对最新技术的评估表明,没有一个现有的工具支持实现所有10个需求。结论:虽然在高性能计算领域有相当多的研究,但少数实证研究明确关注了该领域从业者面临的挑战;本研究旨在解决这一差距。本文中的实证研究提供了一些见解,可以帮助研究人员和工具供应商更好地理解并行程序员的需求。
Context:Multi-core architectures are becoming increasingly ubiquitous and software professionals are seeking to leverage the capabilities of distributed-memory architectures. The process of parallelizing software applications can be very tedious and error-prone, in particular the task of data decomposition. Empirical studies investigating the complexity of data decomposition and communication are lacking.Objective:Our objective is threefold: (i) to gain an empirical-based understanding of the task of data decomposition as part of the parallelization of software applications; (ii) to identify key requirements for tools to assist developers in this task, and (iii) assess the current state-of-the-art.Methods:Our empirical investigation employed a multi-method approach, using an interview study, participant-observer case study, focus group study, and a sample survey. The empirical investigation involved collaborations with three industry partners: IBM’s High Performance Computing Center, the Irish Centre for High-End Computing (ICHEC), and JBA Consulting.Results:This article presents data decomposition as one of the most prevalent tasks of parallelizing applications for multi-core architectures. Based on our studies, we identify ten key requirements for tool support to help HPC developers in this area. Our evaluation of the state-of-the-art shows that none of the extant tool support implements all 10 requirements.Conclusion:While there is a considerable body of research in the area of HPC, a few empirical studies exist which explicitly focus on the challenges faced by practitioners in this area; this research aims to address this gap. The empirical studies in this article provide insights that may help researchers and tool vendors to better understand the needs of parallel programmers.