Data Flow Fusion with Series Expressions in Haskell

作者:Lippmeier Ben*; Chakravarty Manuel M T; Keller Gabriele; Robinson Amos
来源:ACM Sigplan Notices, 2013, 48(12): 93-104.
DOI:10.1145/2503778.2503782

摘要

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%26apos;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.

  • 出版日期2013-12