Abstract
The key to compiling functional, collection oriented array programs into efficient code is to minimise memory traffic. Simply fusing subsequent array operations into a single computation is not sufficient; we also need to cluster separate traversals of the same array into a single traversal. Previous work demonstrated how Integer Linear Programming (ILP) can be used to cluster the operators in a general data-flow graph into subgraphs, which can be individually fused. However, these approaches can only handle operations which preserve the size of the array, thereby missing out on some optimisation opportunities. This paper addresses this shortcoming by extending the ILP approach with support for size-changing operations, using an external ILP solver to find good clusterings. Copyright is held by the owner/author(s).
Original language | English |
---|---|
Title of host publication | FHPC 2014 - Proceedings of the 2014 ACM SIGPLAN Workshop on Functional High-Performance Computing |
Publisher | Association for Computing Machinery |
Pages | 53-62 |
Number of pages | 10 |
ISBN (Electronic) | 9781450330404 |
DOIs | |
Publication status | Published - 1 Jan 2014 |
Externally published | Yes |
Event | 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2014 - Gothenburg, Sweden Duration: 4 Sept 2014 → 4 Sept 2014 |
Conference
Conference | 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2014 |
---|---|
Country/Territory | Sweden |
City | Gothenburg |
Period | 4/09/14 → 4/09/14 |
Keywords
- Arrays
- Fusion
- Haskell