Affiliation:
1. German Research School for Simulation Sciences, RWTH Aachen University, Aachen Germany
Abstract
The triumphant spread of multicore processors over the past decade increases the pressure on software developers to exploit the growing amount of parallelism available in the hardware. However, writing parallel programs is generally challenging. For sequential programs, the formulation of design patterns marked a turning point in software development, boosting programmer productivity and leading to more reusable and maintainable code. While the literature is now also reporting a rising number of parallel design patterns, programmers confronted with the task of parallelizing an existing sequential program still struggle with the question of which parallel pattern to apply where in their code. In this article, we show how template matching, a technique traditionally used in the discovery of sequential design patterns, can also be used to support parallelization decisions. After looking for matches in a previously extracted dynamic dependence graph, we classify code blocks of the input program according to the structure of the parallel patterns we find. Based on this information, the programmer can easily implement the detected pattern and create a parallel version of his or her program. We tested our approach with six programs, in which we successfully detected pipeline and do-all patterns.
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference34 articles.
1. Christian Bienia. 2011. Benchmarking Modern Multiprocessors. Ph.D. Dissertation. Princeton University. Christian Bienia. 2011. Benchmarking Modern Multiprocessors. Ph.D. Dissertation. Princeton University.
2. HELIX
3. Design pattern detection by template matching
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Schematic Program Proofs with Abstract Execution;Journal of Automated Reasoning;2024-03-26
2. Studying the expressiveness and performance of parallelization abstractions for linear pipelines;Proceedings of the 14th International Workshop on Programming Models and Applications for Multicores and Manycores;2023-02-25
3. Pattern-based Autotuning of OpenMP Loops using Graph Neural Networks;2022 IEEE/ACM International Workshop on Artificial Intelligence and Machine Learning for Scientific Applications (AI4S);2022-11
4. Ever Change a Running System: Structured Software Reengineering Using Automatically Proven-Correct Transformation Rules;Ernst Denert Award for Software Engineering 2020;2022
5. ArchViMP – a Framework for Automatic Extraction of Concurrency-related Software Architectural Properties;50th International Conference on Parallel Processing Workshop;2021-08-09