Using fusion to enable late design decisions for pipelined computations
Paper i proceeding, 2016

We present an embedded language in Haskell for programming pipelined computations. The language is a combination of Feldspar (a functional language for array computations) and a new implementation of Ziria (a language for describing streaming computations originally designed for programming software defined radio). The resulting language makes heavy use of fusion: as in Feldspar, computations over arrays are fused to eliminate intermediate arrays, but Ziria processes can also be fused, eliminating the message passing between them, which in turn can give rise to more fusion at the Feldspar level. The result is a language in which we can first describe pipelined computations at a very fine-grained level, and only afterwards map computations onto the details of a specific parallel architecture, where the fusion helps us to generate efficient code. This flexible design method enables late design decisions cheaply, which in turn can lead to more efficient produced code. In the paper, we present two examples of pipelined computations in our language that can be run on Adapteva’s Epiphany many-core coprocessor and on other back-ends.

Epiphany

Blowfish

Pipeline parallelism

Fusion

Haskell

Författare

Máté Karácsony

Eötvös Loránd University (ELTE)

Koen Claessen

Programvaruteknik, Grupp A

FHPC 2016 - Proceedings of the 5th International Workshop on Functional High-Performance Computing, co-located with ICFP 2016

9-16
9781450344333 (ISBN)

5th ACM International Workshop on Functional High Performance Computing, FHPC 2016, co-located with ICFP 2016
Nara, Japan,

Ämneskategorier

Inbäddad systemteknik

Datavetenskap (datalogi)

Datorsystem

DOI

10.1145/2975991.2975993

Mer information

Senast uppdaterat

2022-01-17