A user level program transformation tool
ICS '98 Proceedings of the 12th international conference on Supercomputing
Retargeting Sequential Image-Processing Programs for Data Parallel Execution
IEEE Transactions on Software Engineering
Pattern-based behavior synthesis for FPGA resource reduction
Proceedings of the 16th international ACM/SIGDA symposium on Field programmable gate arrays
XARK: An extensible framework for automatic recognition of computational kernels
ACM Transactions on Programming Languages and Systems (TOPLAS)
On domain-specific languages reengineering
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Automatic source code transformation for GPUs based on program comprehension
Euro-Par'11 Proceedings of the 2011 international conference on Parallel Processing - Volume 2
A SWP specification for sequential image processing algorithms
ACSAC'07 Proceedings of the 12th Asia-Pacific conference on Advances in Computer Systems Architecture
Extensible Recognition of Algorithmic Patterns in DSP Programs for Automatic Parallelization
International Journal of Parallel Programming
Hi-index | 0.00 |
Techniques for Automatic Program Comprehension can play a crucial role in overcoming limitations of existing tools for the automatic parallelization of programs for distributed-memory architectures. Uses of a program recognition-based parallelization procedure could range from the automatic selection of a data distribution, via the automatic selection of sequences of optimizing transformations of the sequential code, via the code replacement with optimized parallel libraries, up to the automatic selection of the parallel execution model that is best suited to the algorithm to be parallelized and to the target parallel architecture. In this paper the implementation of a prototype tool for the recognition of parallelizable algorithmic patterns called 'PAP Recognizer' is presented. The PAP Recognizer implements a 'plan based' technique for the recognition of 'concept instances' in the code that works in a hierarchical way. The output of the tool is a graphical browser that permits the visualization of the hierarchical description of the recognized concepts, together with their implementation within the program code. The prototype has been integrated into the Vienna Fortran Compilation System, an interactive compilation system for scalable distributed memory multiprocessor architectures. It relies on Prolog as a system shell and takes advantage of Prolog's deductive inference-rule engine to perform the hierarchical concept recognition.