FRATS: A parallel reduction strategy for shared memory

2Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.
Get full text

Abstract

FRATS is a strategy for parallel execution of functional languages on shared memory multiprocessors. It provides fork-join parallelism through the explicit usage of an annotation to (recursively) spark a set of parallel tasks. These tasks are executed by ordinary sequential graph reducers which share the program graph. FRATS avoids the consistency problem of graph reducers updating shared nodes by a special evaluation order: Before sparking a set of tasks, all (sub) redexes in those tasks are reduced to normal forms. Then the tasks can proceed in parallel without any synchronisation (e.g., locks) because tasks only share normalised graph nodes. The eager evaluation of shared redexes, however, does not preserve full laziness which might result in superfluous or, worse, infinite computation. The paper presents in detail program transformations to enforce termination and avoid superfluous computation. Analysis of a, benchmark of parallel applications shows that these transformations are necessary and effective with negligible costs. Sometimes they even increase performance.

Cite

CITATION STYLE

APA

Langendoen, K. G., & Vree, W. G. (1991). FRATS: A parallel reduction strategy for shared memory. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 528 LNCS, pp. 99–110). Springer Verlag. https://doi.org/10.1007/3-540-54444-5_91

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free