Analysis of Parallelism in Recursive Functions on Recursive Data Structures
نویسنده
چکیده
In functional languages, iterative operations on data collections are naturally expressed using recursive functions on recursive data structures. In this paper, we present a method to extract data parallelism from recursive functions and generate data parallel programs. As the parallel model for object programs, we use polytypic parallel skeletons. This model can express data parallel operations on general re-cursive data structures. With this model, we can extract data parallelism from recursive functions on general recursive structures such as trees and lists. To extract appropriate computations for each parallel skeleton from an input function, we classify all subexpressions in the function body based on their conditions of parallel execution. Then, a data parallel program is generated from the classiied expressions of the function. Comparing our analytical approach with previous calculational approaches, our approach can parallelize more general recursive functions with complex data ow.
منابع مشابه
An Analytical Method Forparallelization of Recursive
Received (received date) Revised (revised date) Communicated by Christian Lengauer ABSTRACT Programming with parallel skeletons is an attractive framework because it encourages programmers to develop eecient and portable parallel programs. However, extracting parallelism from sequential speciications and constructing eecient parallel programs using the skeletons are still diicult tasks. In this...
متن کاملAn Analytical Method for Parallelization of Recursive Functions
Programming with parallel skeletons is an attractive framework because it encourages programmers to develop e cient and portable parallel programs. However, extracting parallelism from sequential speci cations and constructing e cient parallel programs using the skeletons are still di cult tasks. In this paper, we propose an analytical approach to transforming recursive functions on general rec...
متن کاملDetecting Parallelism in C Programs with Recursive Darta Structures
In this paper we present techniques to detect three common patterns of parallelism in C programs that use recursive data structures. These patterns include, function calls that access disjoint sub-pieces of tree-like data structures, pointer-chasing loops that traverse list-like data structures, and array-based loops which operate on an array of pointers pointing to disjoint data structures. We...
متن کاملConsumption-Based Asset Pricing with Recursive Utility
In this paper it has been attempted to investigate the capability of the consumption-based capital asset pricing model (CCAPM), using the general method of moment (GMM), with regard to the Epstien-zin recursive preferences model for Iran's capital market. Generally speaking, recursive utility permits disentangling of the two psychologically separate concepts of risk aversion and elasticity of i...
متن کاملAIOSC: Analytical Integer Word-length Optimization based on System Characteristics for Recursive Fixed-point LTI Systems
The integer word-length optimization known as range analysis (RA) of the fixed-point designs is a challenging problem in high level synthesis and optimization of linear-time-invariant (LTI) systems. The analysis has significant effects on the resource usage, accuracy and efficiency of the final implementation, as well as the optimization time. Conventional methods in recursive LTI systems suffe...
متن کامل