Accelerate
Embedded language for high-performance array computations
...Computations on multi-dimensional, regular arrays are expressed in the form of parameterized collective operations (such as maps, reductions, and permutations). These computations are online-compiled and executed on a range of architectures. Accelerate is a free, general-purpose, open-source library that simplifies the process of developing software that targets massively parallel architectures including multicore CPUs and GPUs. Embedded in the advanced functional programming language Haskell, Accelerate programs are declarative, statically-typed, pure, functional, and ready to exploit all of the performance of modern parallel hardware. ...