Title
Fusing filters with integer linear programming
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.
Year
DOI
Venue
2014
10.1145/2636228.2636235
FHPC@ICFP
Keywords
Field
DocType
fusion,arrays,haskell,compilers,optimization
Graph,Tree traversal,Computer science,Parallel computing,Theoretical computer science,Integer programming,Operator (computer programming),Haskell,Solver,Computation
Conference
Citations 
PageRank 
References 
1
0.35
17
Authors
3
Name
Order
Citations
PageRank
Amos Robinson1122.28
Ben Lippmeier21357.99
Gabriele Keller365736.02