This paper reports on the memory performance of parallel scientiยฎc algorithms, written in both pure and impure functional styles. The Id programming language is used, since it allows both pure and impure parallel functional programs to be expressed. The non-strict storage model of Id is introduced.
Parallelizing Imperative Functional Programs: the Vectorization Monad
โ Scribed by JONATHAN M.D. HILL; KEITH M. CLARKE; RICHARD BORNAT
- Book ID
- 102975345
- Publisher
- Elsevier Science
- Year
- 1996
- Tongue
- English
- Weight
- 680 KB
- Volume
- 21
- Category
- Article
- ISSN
- 0747-7171
No coin nor oath required. For personal study only.
โฆ Synopsis
Traditionally a vectorizing compiler matches the iterative constructs of a program against a set of predefined templates. If a loop contains no dependency cycles then a map template can be used; other simple dependencies can often be expressed in terms of fold or scan templates. This paper addresses the template matching problem within the context of functional programming. A small collection of program identities are used to specify vectorizable for-loops. By incorporating these program identities within a monad, all well-typed for-loops in which the body of the loop is expressed using the vectorization monad can be vectorized. This technique enables the elimination of template matching from a vectorizing compiler, and the proof of the safety of vectorization can be performed by a type inference mechanism.
๐ SIMILAR VOLUMES