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

  • Accelerate, Repa and Nikola all use the same indexing mechanism, but neither of them provides generalised maps, where a change of dimension is possible. That is, a map we could instantiate in the same way as the following map is instantiated to lists of lists: map :: (a -> [b]) -> [a] -> a For instance, we would like the possibility of writing a function such as: 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