Using Template Matching to Infer Parallel Design Patterns

作者: Zia Ul Huda , Ali Jannesari , Felix Wolf

DOI: 10.1145/2688905

关键词:

摘要: The triumphant spread of multicore processors over the past decade increases pressure on software developers to exploit growing amount parallelism available in hardware. However, writing parallel programs is generally challenging. For sequential programs, formulation design patterns marked a turning point development, boosting programmer productivity and leading more reusable maintainable code. While literature now also reporting rising number patterns, programmers confronted with task parallelizing an existing program still struggle question which pattern apply where their In this article, we show how template matching, technique traditionally used discovery can be support parallelization decisions. After looking for matches previously extracted dynamic dependence graph, classify code blocks input according structure find. Based information, easily implement detected create version his or her program. We tested our approach six successfully pipeline do-all patterns.

参考文章(33)
Christian Bienia, Kai Li, Benchmarking modern multiprocessors Princeton University. ,(2011)
Berna L. Massingill, Beverly A. Sanders, Timothy G. Mattson, Patterns for parallel programming ,(2004)
Richard Helm, John Vlissides, Ralph Johnson, Erich Gamma, Design Patterns: Elements of Reusable Object-Oriented Software ,(1994)
Alain Ketterlin, Philippe Clauss, Profiling Data-Dependence to Assist Parallelization: Framework, Scope, and Optimization international symposium on microarchitecture. pp. 437- 448 ,(2012) , 10.1109/MICRO.2012.47
Arun Raman, Ayal Zaks, Jae W. Lee, David I. August, Parcae: a system for flexible parallel execution programming language design and implementation. ,vol. 47, pp. 133- 144 ,(2012) , 10.1145/2254064.2254082
Easwaran Raman, Guilherme Ottoni, Arun Raman, Matthew J. Bridges, David I. August, Parallel-stage decoupled software pipelining symposium on code generation and optimization. pp. 114- 123 ,(2008) , 10.1145/1356058.1356074
Sean Rul, Hans Vandierendonck, Koen De Bosschere, Function level parallelism driven by data dependencies ACM SIGARCH Computer Architecture News. ,vol. 35, pp. 55- 62 ,(2007) , 10.1145/1241601.1241612
Zheng Wang, Georgios Tournavitis, Björn Franke, Michael F. P. O'boyle, Integrating profile-driven parallelism detection and machine-learning-based mapping ACM Transactions on Architecture and Code Optimization. ,vol. 11, pp. 1- 26 ,(2014) , 10.1145/2579561
Georgios Tournavitis, Björn Franke, Semi-automatic extraction and exploitation of hierarchical pipeline parallelism using profiling information international conference on parallel architectures and compilation techniques. pp. 377- 388 ,(2010) , 10.1145/1854273.1854321