通过后向切片提升解耦软件流水线的性能
编程语言
2015-01-28 v1
摘要
多核处理器中可用核心数量的迅速增加并不必然直接导致性能的相应提升:用 C 等传统语言编写的程序需要经过仔细的重构(最好是自动进行),才能观察到运行时间的改善。即便如此,很大程度上仍取决于原始程序固有的并发执行能力。本文的主题是解耦软件流水线 (DSWP) 与(后向)切片这两种互补技术结合使用所带来的性能增益。DSWP 通过将循环体分解为多个阶段并以流水线方式执行,从而提取线程级并行性:实质上是在控制链上进行横向切割。另一方面,切片则是沿控制链纵向切割程序,剥离出依赖于不同变量(或位置)的更细粒度线程。本文的主要贡献在于证明,先应用 DSWP 再进行切片,相比单独使用 DSWP 能带来显著改进,特别是在存在阻碍简单 DOALL 优化应用的循环携带依赖时。实验结果显示,DSWP 加切片相比单独 DSWP 提升了约 1.6 倍,相比原始顺序代码提升了约 2.4 倍。
引用
@article{arxiv.1501.06743,
title = {Enhancing the performance of Decoupled Software Pipeline through Backward Slicing},
author = {Esraa Alwan and John Fitch and Julian Padget},
journal= {arXiv preprint arXiv:1501.06743},
year = {2015}
}