Skip to content
Manuel M T Chakravarty edited this page Aug 16, 2013 · 43 revisions

An Embedded Language for Accelerated Array Computations

Data.Array.Accelerate defines an embedded language of array computations for high-performance computing in Haskell. Computations on regular, multi-dimensional arrays are expressed in the form of parameterised collective operations such as maps, reductions, and permutations. These computations are online-compiled and executed on a range of architectures.

Benchmarks

External resources

  • Simon Marlow's book Parallel and Concurrent Programming in Haskell contains a chapter on Accelerate.

  • Simon Marlow recently taught a course on parallel & concurrent programming in Haskell at the EDF/CEA/INRIA Summer School 2012, "Functional Programming for Parallel and Concurrent Applications". One of the lectures teaches GPU programming using Accelerate; check out his [slides](http://community.haskell.org/~simonmar/slides/cadarache2012/7 - accelerate.pdf) and accompanying exercises (page 14 onwards).

  • Ryan Newton describes the meta-par library, and how to use Accelerate as part of a parallel program that uses both the CPU and GPU. See his blog post here.