Accelerate your numeric code in Haskell at MuniHac 2026
An embedded array language in Haskell for multicore CPU and GPU systems

I’ll present a keynote on Accelerate on 9 October at the MuniHac 2026 Haskell Hackathon. Here is the abstract of the talk.
Accelerate is a library to achieve high performance for numeric algorithms (such as those found in graphics, simulations, and machine learning) on multicore CPU and GPU systems. Accelerate doesn’t achieve this by forcing you to write low-level monadic code, but by encouraging high-level purely functional code.
You guessed it. There is a price to pay. In Accelerate, you need to write your numeric array algorithms in an embedded language. That language is a subset of Haskell designed to facilitate high-performance data parallel algorithms. The rest of your program is still plain Haskell.
Accelerate comes with custom backends that translate code written in the embedded language into highly optimised machine code. That code gets efficiently scheduled onto multicore CPU and GPU systems by a custom runtime system.
In this talk, I like to achieve three goals: (1) I want to enable you to use Accelerate to implement numeric algorithms; (2) I want to provide a high-level outline of how Accelerate works; and (3) I want to encourage you to use Accelerate or even contribute to it. The first goal is in reach, even for beginning Haskell users. For the second goal, we will have to dive deeper, but I’ll keep it accessible with examples and thorough explanations. And finally, to use Accelerate effectively, it is more important to understand the algorithm that you want to implement than to be a Haskell expert.
There is still time to register!