David van Balen, Gabriele Keller, Ivo Gabede Wolff, Trevor L. McDonell
{"title":"Fusing Gathers with Integer Linear Programming","authors":"David van Balen, Gabriele Keller, Ivo Gabede Wolff, Trevor L. McDonell","doi":"arxiv-2407.13585","DOIUrl":null,"url":null,"abstract":"We present an Integer Linear Programming based approach to finding the\noptimal fusion strategy for combinator-based parallel programs. While\ncombinator-based languages or libraries provide a convenient interface for\nprogramming parallel hardware, fusing combinators to more complex operations is\nessential to achieve the desired performance. Our approach is not only suitable\nfor languages with the usual map, fold, scan, indexing and scatter operations,\nbut also gather operations, which access arrays in arbitrary order, and\ntherefore goes beyond the traditional producer-consumer fusion. It can be\nparametrised with appropriate cost functions, and is fast enough to be suitable\nfor just-in-time compilation.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"172 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2407.13585","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
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.