Compiling functional kernels into graph intermediate code for Maxeler architecture
Sven Cerk
Abstract
Sven Cerk
Abstract
A new method for programming Maxeler's dataflow engines is presented. The existing tools allow programmers to program dataflow engines in Java. We belive that functional programming languages might provide a more suitable alternative. We define a new programming language called MaxHs for programming dataflow engine kernels. In addition, we present a way of interfacing MaxHs programs with programs written in Haskell. With the help of simple example programs we compare our solution with existing tools. In the last part we present a method for compiling MaxHs into a graph-based intermediate code. The elements of the intermediate code are based on the nodes supported by Maxeler's dataflow engines. We also outline how the support for interfacing with Haskell is achieved.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
A new method for programming Maxeler's dataflow engines is presented. The existing tools allow programmers to program dataflow engines in Java. We belive that functional programming languages might provide a more suitable alternative. We define a new programming language called MaxHs for programming dataflow engine kernels. In addition, we present a way of interfacing MaxHs programs with programs written in Haskell. With the help of simple example programs we compare our solution with existing tools. In the last part we present a method for compiling MaxHs into a graph-based intermediate code. The elements of the intermediate code are based on the nodes supported by Maxeler's dataflow engines. We also outline how the support for interfacing with Haskell is achieved.
Key concepts: Dataflow, Haskell, Computer science, Programming language, Functional programming, Interfacing, Programming paradigm, Java