Skip to content

Evaluation: Expressivity

dybber edited this page Oct 29, 2012 · 3 revisions

Evaluation of language expressivity

Evaluation approach

We should present the evaluation as a search for missing pieces in the languages. We are the "enemy" and should dig up all programs that it is impossible to write.

Evaluation notes

  • Neither Accelerate nor Nikola provides generalised maps, where a change of dimension is possible. That is, a map we could specialise in the same way as the following map is specialised to lists of lists: map :: (a -> [b]) -> [a] -> a We would like the possibility of writing a function: map :: (Array DIM0 f -> Array DIM1 f) -> Array DIM1 f -> Array DIM2 f

  • Accelerate does not provide sequential loops, only parallel loops, as they want to make performance guarantees for all programs

  • Nikola does not provide any reduction primitives (yet). Only maps (e.g. map and zipWith), index space permutations (e.g. reverse, reshape, tail, drop)

  • Repa does not provide scans

Survey "VectorMARK" in progress

Clone this wiki locally