Please log in to watch this conference skillscast.
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:
- Hack & Hang Night (in Chicago on 21st February 2023)
- Haskell Wednesday: Bring Your Project, Get help with your code & socialise (Online Meetup on 23rd February 2023)
- Teaching Haskell...To High Schoolers! (SkillsCast recorded in December 2022)
- Teaching Haskell...To High Schoolers! (SkillsCast recorded in December 2022)