Hands-on, example-driven introduction to Futhark, a purely functional data-parallel array language that compiles to GPU and CPU backends.
Key Takeaways
Futhark targets high-performance parallel workloads; programs run on GPU or CPU without changing source code.
The example collection covers basics through advanced topics: radix sort, automatic differentiation, matrix multiplication, Kahan summation, and literate Futhark with gnuplot plotting.
Real projects built in Futhark include Pareas (a compiler), Neptune (Poseidon hash for Filecoin), ray tracers based on Peter Shirley’s books, and a lattice Boltzmann solver.
The interpreter supports loading example programs directly for experimentation; “Parallel Programming in Futhark” is the alternative conventional reference.
Examples ported from Dex cover Mandelbrot, Monte Carlo pi, Brownian motion, and a multi-step ray tracer, showing cross-language benchmark parity.