Abstract
This paper introduces a new programming framework based on the theory of session types for safe, reconfigurable 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 Kmeans 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.
- S. Denholm, K. H. Tsoi, P. Pietzuch, and W. Luk. CusComNet: A Customisable Network for Recongurable Heterogeneous Clusters. In ASAP, pages 9--16. IEEE, 2011. Google Scholar
Digital Library
- K. Honda et al. Scribbling interactions with a formal foundation. In ICDCIT, volume 6536 of LNCS, pages 55--75. Springer, 2011. Google Scholar
Digital Library
- K. Honda, V. T. Vasconcelos, and M. Kubo. Language Primitives and Type Disciplines for Structured Communication-based Programming. In ESOP, volume 1381 of LNCS, pages 122--138. Springer-Verlag, 1998. Google Scholar
Digital Library
- K. Honda, N. Yoshida, and M. Carbone. Multiparty asynchronous session types. In POPL'08, volume 5201, page 273, 2008. Google Scholar
Digital Library
- R. Hu et al. Type-Safe Eventful Sessions in Java. In ECOOP, volume 6183 of LNCS, pages 329--353, 2010. Google Scholar
Digital Library
- R. Hu, N. Yoshida, and K. Honda. Session-Based Distributed Programming in Java. In ECOOP, volume 5142 of LNCS, pages 516--541, 2008. Google Scholar
Digital Library
- D. Mostrous, N. Yoshida, and K. Honda. Global principal typing in partially commutative asynchronous sessions. In ESOP, volume 5502 of LNCS, pages 316--332, 2009. Google Scholar
Digital Library
- MPJ Express homepage. http://mpj-express.org/.Google Scholar
- N. Ng et al. Safe Parallel Programming with Session Java. In COORDINATION, volume 6721 of LNCS, pages 110--126, 2011. Google Scholar
Digital Library
- N. Ng, N. Yoshida, and K. Honda. Multiparty Session C: Safe parallel programming with message optimisation. In TOOLS, pages 203--219, 2012. Google Scholar
Digital Library
- OpenMPI Homepage. http://www.open-mpi.org/.Google Scholar
- M. Saldaña et al. MPI as a Programming Model for High-Performance Reconfigurable Computers. TRETS, 3(4):1--29, Nov. 2010. Google Scholar
Digital Library
- Scribble homepage. http://www.jboss.org/scribble.Google Scholar
- A. Shafi, B. Carpenter, and M. Baker. Nested parallelism for multi-core HPC systems using Java. JPDC, 69(6):532--545, June 2009. Google Scholar
Digital Library
- S. F. Siegel and T. K. Zirkel. Automatic formal verification of MPI-based parallel programs. In PPoPP'11, page 309. ACM Press, Feb. 2011. Google Scholar
Digital Library
- K. H. Tsoi and W. Luk. Axel: a heterogeneeous cluster with FPGAs and GFPUs. In FPGA '10, pages 115--124. ACM Press, 2010. Google Scholar
Digital Library
- A. Vo et al. Formal verification of practical MPI programs. In PPoPP'09, pages 261--270, 2009. Google Scholar
Digital Library
- A. Vo et al. A Scalable and Distributed Dynamic Formal Verifier for MPI Programs. In SC'10, pages 1--10. IEEE, 2010. Google Scholar
Digital Library
- J. P. Walters et al. MPI-HMMER-Boost: Distributed FPGA Acceleration. The Journal of Signal Processing Systems, 48(3):223--238, Aug. 2007. Google Scholar
Digital Library
- Session C homepage. http://www.doc.ic.ac.uk/~cn06/sessionc/.Google Scholar
Index Terms
Session types: towards safe and fast reconfigurable programming
Recommendations
Session types revisited
PPDP '12: Proceedings of the 14th symposium on Principles and practice of declarative programmingSession types are a formalism to model structured communication-based programming. A session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session primitives are added to ...
Gradual session types
Session types are a rich type discipline, based on linear types, that lift the sort of safety claims that come with type systems to communications. However, web-based applications and micro services are often written in a mix of languages, with type ...
Type checking a multithreaded functional language with session types
We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static type checking. A session type, associated with a communication channel, specifies the state transitions of a ...






Comments