Affiliation:
1. Eindhoven University of Technology, The Netherlands
Abstract
Code generation and programming have become ever more challenging over the last decade due to the shift towards parallel processing. Emerging processor architectures such as multi-cores and GPUs exploit increasingly parallelism, requiring programmers and compilers to deal with aspects such as threading, concurrency, synchronization, and complex memory partitioning. We advocate that programmers and compilers can greatly benefit from a structured classification of program code. Such a classification can help programmers to find opportunities for parallelization, reason about their code, and interact with other programmers. Similarly, parallelising compilers and source-to-source compilers can take threading and optimization decisions based on the same classification. In this work, we introduce
algorithmic species
, a classification of affine loop nests based on the polyhedral model and targeted for both automatic and manual use. Individual classes capture information such as the structure of parallelism and the data reuse. To make the classification applicable for manual use, a basic vocabulary forms the base for the creation of a set of intuitive classes. To demonstrate the use of algorithmic species, we identify 115 classes in a benchmark set. Additionally, we demonstrate the suitability of algorithmic species for automated uses by showing a tool to automatically extract species from program code, a species-based source-to-source compiler, and a species-based performance prediction model.
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference26 articles.
1. Automatic translation of FORTRAN programs to vector form
2. A view of the parallel computing landscape
3. Campbell D. K. G. 1996. Towards the classification of algorithmic skeletons. Tech. rep. YCS 276 University of York. Campbell D. K. G. 1996. Towards the classification of algorithmic skeletons. Tech. rep. YCS 276 University of York.
4. An idiom-finding tool for increasing productivity of accelerators
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Study of Memory Access Patterns as an Indicator of Performance in High-Level Synthesis;Proceedings of First International Conference on Smart System, Innovations and Computing;2018
2. Using PEGs for Automatic Extraction of Memory Access Descriptions to Support Data-Parallel Pattern Recognition;Proceedings of the 8th Workshop and 6th Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures and Design Tools and Architectures for Multicore Embedded Computing Platforms - PARMA-DITAM '17;2017
3. A Survey of Loop Parallelization: Models, Approaches, and Recent Developments;International Journal of Grid and Distributed Computing;2016-11-30
4. Bones;ACM Transactions on Architecture and Code Optimization;2015-01-09
5. Automatic Skeleton-Based Compilation through Integration with an Algorithm Classification;Lecture Notes in Computer Science;2013