Harnessing the Multicores: Nested Data Parallelism in Haskell

Simon Peyton Jones, Roman Leshchinskiy, Gabriele Keller & Manuel M T Chakravarty
If you want to program a parallel computer, a purely functional language like Haskell is a promising starting point. Since the language is pure, it is by-default safe for parallel evaluation, whereas imperative languages are by-default unsafe. But that doesn\'t make it easy! Indeed it has proved quite difficult to get robust, scalable performance increases through parallel functional programming, especially as the number of processors increases. A particularly promising and well-studied approach to employing large...