Portability | not portable |
---|---|

Stability | beta |

Maintainer | eden@mathematik.uni-marburg.de |

Safe Haskell | Safe-Infered |

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

:: (b -> c -> c) | reduce function |

-> c | neutral for reduce function |

-> (a -> b) | map function |

-> [a] | input |

-> c | result |

:: (c -> b -> c) | reduce function |

-> c | neutral for reduce function |

-> (a -> b) | map function |

-> [a] | input |

-> c | result |

:: (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] -> bSource

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] -> bSource

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] -> bSource

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] -> bSource

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] -> bSource

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] -> bSource

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