On the Automatic Parallelization of List-Based Functional Programs
نویسنده
چکیده
We investigate the behavior of functional programs operating on list structures with respect to automatic parallelization. Many list-processing functions follow typical patterns of recursion that contain inherent horizontal paral-lelism, data parallelism, vertical parallelism and stream parallelism. Starting from a simple classiication of list-processing functions, more and more general versions of functional patterns are presented and it is shown how they cover many concrete programs. The operational behavior of these functional patterns in a parallel environment is discussed and criteria are presented that allow the automatic classiication of functional programs.
منابع مشابه
Automatic Parallelization of Higher-Order Languages in the Polytope
Automatic parallelization and reduction of memory requirement for functional programs have been two active research topics. In this paper, we address both issues simultaneously thanks to the polytope model, a framework originally crafted for the parallelization of imperative programs.
متن کاملProgram Comprehension Techniques to Improve Automatic Parallelization
Automated program recognition can play a crucial role in overcoming limitations of existing tools for the automatic parallelization of programs for distributed-memory architectu-res. In this paper, we describe the integration of parallelization techniques based on program comprehension into the Vienna Fortran Compilation System (VFCS). After a pattern occurring in a program has been recognized ...
متن کاملHyperstrictness and the Parallel Evaluation of Lazy Functional Programs
Strictness analysis can be used for automatic parallelization of lazy functional programs while preserving their semantics (and termination properties, in particular). This paper considers ways of exploiting strictness analysis in implementing functional languages eeciently on stock parallel hardware. A strictness{based parallel evaluation model is presented, and is compared with the more gener...
متن کاملSemantic Analysis for Parallelizing C
Automatic parallelization of C language programs is a diicult task due, for example, to side eeects within expressions and access to memory via pointers. We describe a method based on semantic analysis of the language, in order to detect parallelism in complex programs using pointer arithmetic. We deene semantic domains which respect the type system of the language, and use them to synthesize e...
متن کاملAutomatic Transformations for Effective Parallel Execution on Intel Many Integrated Core
We demonstrate in this work the potential effectiveness of a source-to-source framework for automatically optimizing a sub-class of affine programs on the Intel Many Integrated Core Architecture. Data locality is achieved through complex and automated loop transformations within the polyhedral framework to enable parallel tiling, and the resulting tiles are processed by an aggressive automatic ...
متن کامل