Abstract | ||
---|---|---|
Existing approaches to array fusion can deal with straight-line producer consumer pipelines, but cannot fuse branching data flows where a generated array is consumed by several different consumers. Branching data flows are common and natural to write, but a lack of fusion leads to the creation of an intermediate array at every branch point. We present a new array fusion system that handles branches, based on Waters's series expression framework, but extended to work in a functional setting. Our system also solves a related problem in stream fusion, namely the introduction of duplicate loop counters. We demonstrate speedup over existing fusion systems for several key examples. |
Year | DOI | Venue |
---|---|---|
2013 | 10.1145/2503778.2503782 | Haskell |
Keywords | Field | DocType |
stream fusion,array fusion,series expression,branch point,functional setting,different consumer,duplicate loop counter,data flow,data flow fusion,intermediate array,fusion system,new array fusion system,fusion | Pipeline transport,Expression (mathematics),Computer science,Parallel computing,Fusion,Theoretical computer science,Haskell,Fuse (electrical),Data flow diagram,Branching (version control),Speedup | Conference |
Volume | Issue | ISSN |
48 | 12 | 0362-1340 |
Citations | PageRank | References |
9 | 0.53 | 21 |
Authors | ||
4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Ben Lippmeier | 1 | 135 | 7.99 |
Manuel M.T. Chakravarty | 2 | 170 | 7.02 |
Gabriele Keller | 3 | 657 | 36.02 |
Amos Robinson | 4 | 12 | 2.28 |