arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1002.4264cs.DCcs.PF
收藏

SPMD并行程序的自动性能分析

Automatic Performance Debugging of SPMD Parallel Programs

Xu Liu, Lin Yuan, Jianfeng Zhan, Bibo Tu, Dan Meng

摘要:

并行应用程序的自动性能调试通常包括两个步骤:自动检测性能瓶颈和发现其根本原因以进行性能优化。以前的工作未能解决这个具有挑战性的问题,在几个方面:第一,以前的几个努力自动化分析过程,但目前的结果在一个有限的方式,只有识别性能问题的先验知识;第二,一些工具采取探索性或验证性的数据分析,自动发现相关的性能数据关系。然而,这些努力并没有集中在定位性能瓶颈或发现其根本原因。在本文中,我们设计并实现了一个创新的系统,AutoAnalyzer,自动调试单程序多数据(SPMD)并行程序的性能问题。我们的系统在两个维度上是独一无二的:首先,在没有任何先验知识的情况下,我们自动定位瓶颈并发现其性能优化的根本原因;其次,我们的方法在收集和分析的性能数据的大小方面是轻量级的。我们的贡献是三方面的。首先,我们提出了一组简单的性能指标来表示并行程序的不同进程的行为,并提出了两个有效的聚类和搜索算法来定位瓶颈。其次,我们提出使用粗糙集算法来自动发现瓶颈的根源。第三,设计并实现了AutoAnalyzer系统,并通过两个生产应用验证了本文方法的有效性和正确性。根据AutoAnalyzer的分析结果,我们优化了两个并行程序的性能提高最低20%,最高170%。

英文摘要:

Automatic performance debugging of parallel applications usually involves two steps: automatic detection of performance bottlenecks and uncovering their root causes for performance optimization. Previous work fails to resolve this challenging issue in several ways: first, several previous efforts automate analysis processes, but present the results in a confined way that only identifies performance problems with apriori knowledge; second, several tools take exploratory or confirmatory data analysis to automatically discover relevant performance data relationships. However, these efforts do not focus on locating performance bottlenecks or uncovering their root causes. In this paper, we design and implement an innovative system, AutoAnalyzer, to automatically debug the performance problems of single program multi-data (SPMD) parallel programs. Our system is unique in terms of two dimensions: first, without any apriori knowledge, we automatically locate bottlenecks and uncover their root causes for performance optimization; second, our method is lightweight in terms of size of collected and analyzed performance data. Our contribution is three-fold. First, we propose a set of simple performance metrics to represent behavior of different processes of parallel programs, and present two effective clustering and searching algorithms to locate bottlenecks. Second, we propose to use the rough set algorithm to automatically uncover the root causes of bottlenecks. Third, we design and implement the AutoAnalyzer system, and use two production applications to verify the effectiveness and correctness of our methods. According to the analysis results of AutoAnalyzer, we optimize two parallel programs with performance improvements by minimally 20% and maximally 170%.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑