| Copyright | (c) Philipps Universitaet Marburg 2011-2014 | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | eden@mathematik.uni-marburg.de | 
| Stability | beta | 
| Portability | not portable | 
| Safe Haskell | None | 
| Language | Haskell98 | 
Control.Parallel.Eden.MapReduce
Description
This Haskell module defines map-reduce skeletons for the parallel functional language Eden.
Depends on GHC. Using standard GHC, you will get a threaded simulation of Eden. Use the forked GHC-Eden compiler from http://www.mathematik.uni-marburg.de/~eden for a parallel build.
Eden Group ( http://www.mathematik.uni-marburg.de/~eden ) Depends on the Eden Compiler.
- mapRedr :: (b -> c -> c) -> c -> (a -> b) -> [a] -> c
 - mapRedl :: (c -> b -> c) -> c -> (a -> b) -> [a] -> c
 - mapRedl' :: (c -> b -> c) -> c -> (a -> b) -> [a] -> c
 - parMapRedr :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 - parMapRedl :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 - parMapRedl' :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 - offlineParMapRedr :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 - offlineParMapRedl :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 - offlineParMapRedl' :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b
 
Sequential map-reduce definitions
Arguments
| :: (b -> c -> c) | reduce function  | 
| -> c | neutral for reduce function  | 
| -> (a -> b) | map function  | 
| -> [a] | input  | 
| -> c | result  | 
Arguments
| :: (c -> b -> c) | reduce function  | 
| -> c | neutral for reduce function  | 
| -> (a -> b) | map function  | 
| -> [a] | input  | 
| -> c | result  | 
Arguments
| :: (c -> b -> c) | reduce function  | 
| -> c | neutral for reduce function  | 
| -> (a -> b) | map function  | 
| -> [a] | input  | 
| -> c | result  | 
Simple map-reduce skeletons
parMapRedr :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Basic parMapRedr skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants
parMapRedl :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Basic parMapRedl skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants
parMapRedl' :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Basic parMapRedl' skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants
offline map-reduce skeletons
offlineParMapRedr :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Offline parMapRedr skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants, BUT local selection of input sub-list by worker processes
offlineParMapRedl :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Offline parMapRedl skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants, BUT local selection of input sub-list by worker processes
offlineParMapRedl' :: (Trans a, Trans b) => (b -> b -> b) -> b -> (a -> b) -> [a] -> b Source
Offline parMapRedl' skeleton - as many processes as noPe. local pre-folding per PE and final folding of PE-results via different fold variants, BUT local selection of input sub-list by worker processes