Session Types: Towards safe and fast reconfigurable programming

Nicholas NgNobuko YoshidaXin Yu NiuKuen Hung TsoiWayne Luk

Abstract

This paper introduces a new programming framework based on the theory of session types for safe, recongurable parallel designs.

We apply the session type theory to C and Java programming languages and demonstrate that the sessionbased languages can offer a clear and tractable framework to describe communications between parallel components and guarantee communication-safety and deadlock-freedom by compile-time type checking.

Many representative communication topologies such as a ring or scatter-gather can be programmed and verified in session-based programming languages. Case studies involving N-body simulation and K-means clustering are used to illustrate the session-based programming style and to demonstrate that the session-based languages perform competitively against MPI counterparts in an FPGA-based heterogeneous cluster, as well as the potential of integrating them with FPGA acceleration.