I love weird hardware and strange programming languages. Compiling a purely functional array language to GPUs satisfies both those itches!
And beating them on performance might be the only way to convince all the world's dysfunctional programmers that there really is a better way.
I previously wanted to rewrite the whole world in Lisp. After that dream failed, I'm happy that functional programming provides a
replacement avenue for fanaticism! And this one might actually have a shot at changing the world (or at least a very small and very geeky part of it).
We give a presentation of the purely functional array language Futhark, supporting regular nested data-parallelism.
We demonstrate its application to two complicated problems, computing cluster means and Sobol sequences, and demonstrate how Futhark permits the programmer to express simultaneously all degrees of parallelism and efficient sequential code, giving freedom to the optimising compiler in how to organise the generated code.
We also evaluate the performance of the Futhark compiler on several benchmarks running on two different GPUs.Slides