edenskel-2.0.0.0: Semi-explicit parallel programming skeleton library

Copyright(c) Philipps Universitaet Marburg 2011-2014
LicenseBSD-style (see the file LICENSE)
Maintainereden@mathematik.uni-marburg.de
Stabilitybeta
Portabilitynot portable
Safe HaskellNone
LanguageHaskell98

Control.Parallel.Eden.MapReduce

Contents

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.

Synopsis

Sequential map-reduce definitions

mapRedr Source

Arguments

:: (b -> c -> c)

reduce function

-> c

neutral for reduce function

-> (a -> b)

map function

-> [a]

input

-> c

result

mapRedl Source

Arguments

:: (c -> b -> c)

reduce function

-> c

neutral for reduce function

-> (a -> b)

map function

-> [a]

input

-> c

result

mapRedl' Source

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