Fusing Gathers with Integer Linear Programming
David van Balen, Gabriele Keller, Ivo Gabede Wolff, Trevor L. McDonell

TL;DR
This paper introduces an Integer Linear Programming method to optimize fusion strategies in parallel programs, including complex gather operations, enhancing performance in combinator-based languages.
Contribution
It presents a novel ILP-based approach for optimal fusion in parallel programming, extending beyond traditional producer-consumer fusion to include gather operations.
Findings
Effective ILP-based fusion optimization for gather and other operations
Applicable to just-in-time compilation scenarios
Improves performance of combinator-based parallel programs
Abstract
We present an Integer Linear Programming based approach to finding the optimal fusion strategy for combinator-based parallel programs. While combinator-based languages or libraries provide a convenient interface for programming parallel hardware, fusing combinators to more complex operations is essential to achieve the desired performance. Our approach is not only suitable for languages with the usual map, fold, scan, indexing and scatter operations, but also gather operations, which access arrays in arbitrary order, and therefore goes beyond the traditional producer-consumer fusion. It can be parametrised with appropriate cost functions, and is fast enough to be suitable for just-in-time compilation.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
