This SkillsCast is currently only available to registered attendees of Haskell eXchange 2021: Pro Track
It will be freely available to all Skills Matter members once the Haskell eXchange 2021: Pro Track early-access window expires on January 15, 2022.
The goal of this talk is to explain delayed arrays, that are available in
massiv library, as well as their roles in fusion and parallelization of operations applied to multi-dimensional arrays.
Immutable arrays in Haskell come with great safety properties and provide opportunities for a variety of optimizations. However, without fusion most operations on arrays do not compose efficiently due to intermediate allocations. Delayed arrays provide us with a reliable fusion framework, which is fully controlled by the user and guided by the type checker.
Many operations on arrays are massively parallel, however the common Haskell technique of evaluating with
pseq and relying on GHC's spark pool is not applicable to unboxed arrays because it relies on laziness. Combination of a custom scheduler and delayed arrays can help us with a solution, so we can benefit from multi-core parallelization.
YOU MAY ALSO LIKE: