Results 1 -
4 of
4
Parallel Functional Programming At Two Levels Of Abstraction
, 2001
"... The parallel functional language Eden extends Haskell with expressions to define and instantiate process systems. These extensions allow also the easy definition of skeletons as higher-order functions. Parallel programming is possible in Eden at two levels: Recursive programming and higher-order ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
The parallel functional language Eden extends Haskell with expressions to define and instantiate process systems. These extensions allow also the easy definition of skeletons as higher-order functions. Parallel programming is possible in Eden at two levels: Recursive programming and higher-order programming. At the lower level, processes are explicitly created by using recursive definitions, allowing the definition of skeletons. This is novel, as most skeleton-based languages use an imperative language to create new skeletons. At the higher level, available skeletons are used to create applications or to define new skeletons on top of the other ones. In this paper, we present five skeletons, most of them well-known, covering a wide range of parallel structures. For each one, several Eden implementations are given, together with their corresponding cost models. Finally, examples of application programming are shown, including predicted and actual results on a Beowulf cluster. Keywords: Parallel and functional programming, skeletons, cost models. 1
Optimizing Eden by program transformation
"... Eden is a parallel extension of Haskell allowing the programmer to explicitly specify which expressions must be evaluated as parallel processes. Eden is implemented by modifying the Glasgow Haskell Compiler (GHC). This decision has saved a lot of work but has also produced some drawbacks: Some optim ..."
Abstract
- Add to MetaCart
Eden is a parallel extension of Haskell allowing the programmer to explicitly specify which expressions must be evaluated as parallel processes. Eden is implemented by modifying the Glasgow Haskell Compiler (GHC). This decision has saved a lot of work but has also produced some drawbacks: Some optimizing transformations done by GHC are not convenient for Eden, either because they spoil its semantics or because they negatively affect its efficiency. The paper explains how to circumvent these drawbacks and also how to add our own optimizing analysis and transformation steps in order to generate a (correct and) better parallel code.
A Novel Approach to Parenting in Functional Program Evaluation
"... The ability for multiple threads to enter the same graph node without contention and conflict is a necessary component of the graph reduction of functional languages since graph components may be shared. Shared closures, however, compound the difficulty of priority management. ..."
Abstract
- Add to MetaCart
The ability for multiple threads to enter the same graph node without contention and conflict is a necessary component of the graph reduction of functional languages since graph components may be shared. Shared closures, however, compound the difficulty of priority management.
Deriving Non-Hierarchical Process Topologies
"... Eden is a parallel functional language which extends Haskell with new expressions to define and instantiate processes. These extensions allow the easy definition of parallel process topologies as higher order functions. ..."
Abstract
- Add to MetaCart
Eden is a parallel functional language which extends Haskell with new expressions to define and instantiate processes. These extensions allow the easy definition of parallel process topologies as higher order functions.

