skip to main content
tutorial

Session types: towards safe and fast reconfigurable programming

Published: 25 March 2012 Publication History

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.

References

[1]
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.
[2]
K. Honda et al. Scribbling interactions with a formal foundation. In ICDCIT, volume 6536 of LNCS, pages 55--75. Springer, 2011.
[3]
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.
[4]
K. Honda, N. Yoshida, and M. Carbone. Multiparty asynchronous session types. In POPL'08, volume 5201, page 273, 2008.
[5]
R. Hu et al. Type-Safe Eventful Sessions in Java. In ECOOP, volume 6183 of LNCS, pages 329--353, 2010.
[6]
R. Hu, N. Yoshida, and K. Honda. Session-Based Distributed Programming in Java. In ECOOP, volume 5142 of LNCS, pages 516--541, 2008.
[7]
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.
[8]
MPJ Express homepage. http://mpj-express.org/.
[9]
N. Ng et al. Safe Parallel Programming with Session Java. In COORDINATION, volume 6721 of LNCS, pages 110--126, 2011.
[10]
N. Ng, N. Yoshida, and K. Honda. Multiparty Session C: Safe parallel programming with message optimisation. In TOOLS, pages 203--219, 2012.
[11]
OpenMPI Homepage. http://www.open-mpi.org/.
[12]
M. Saldaña et al. MPI as a Programming Model for High-Performance Reconfigurable Computers. TRETS, 3(4):1--29, Nov. 2010.
[13]
Scribble homepage. http://www.jboss.org/scribble.
[14]
A. Shafi, B. Carpenter, and M. Baker. Nested parallelism for multi-core HPC systems using Java. JPDC, 69(6):532--545, June 2009.
[15]
S. F. Siegel and T. K. Zirkel. Automatic formal verification of MPI-based parallel programs. In PPoPP'11, page 309. ACM Press, Feb. 2011.
[16]
K. H. Tsoi and W. Luk. Axel: a heterogeneeous cluster with FPGAs and GFPUs. In FPGA '10, pages 115--124. ACM Press, 2010.
[17]
A. Vo et al. Formal verification of practical MPI programs. In PPoPP'09, pages 261--270, 2009.
[18]
A. Vo et al. A Scalable and Distributed Dynamic Formal Verifier for MPI Programs. In SC'10, pages 1--10. IEEE, 2010.
[19]
J. P. Walters et al. MPI-HMMER-Boost: Distributed FPGA Acceleration. The Journal of Signal Processing Systems, 48(3):223--238, Aug. 2007.
[20]
Session C homepage. http://www.doc.ic.ac.uk/~cn06/sessionc/.

Cited By

View all
  • (2016)Benefits of session types for software developmentProceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools10.1145/3001878.3001883(26-29)Online publication date: 1-Nov-2016
  • (2016)Multiparty Asynchronous Session TypesJournal of the ACM10.1145/282769563:1(1-67)Online publication date: 3-Mar-2016
  • (2014)Global progress for dynamically interleaved multiparty sessionsMathematical Structures in Computer Science10.1017/S096012951400018826:02(238-302)Online publication date: 10-Nov-2014
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGARCH Computer Architecture News
ACM SIGARCH Computer Architecture News  Volume 40, Issue 5
ACM SIGARCH Computer Architecture News/HEART '12
December 2012
110 pages
ISSN:0163-5964
DOI:10.1145/2460216
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 March 2012
Published in SIGARCH Volume 40, Issue 5

Check for updates

Qualifiers

  • Tutorial

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Benefits of session types for software developmentProceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools10.1145/3001878.3001883(26-29)Online publication date: 1-Nov-2016
  • (2016)Multiparty Asynchronous Session TypesJournal of the ACM10.1145/282769563:1(1-67)Online publication date: 3-Mar-2016
  • (2014)Global progress for dynamically interleaved multiparty sessionsMathematical Structures in Computer Science10.1017/S096012951400018826:02(238-302)Online publication date: 10-Nov-2014
  • (2013)Scalable Session Programming for Heterogeneous High-Performance SystemsRevised Selected Papers of the SEFM 2013 Collocated Workshops on Software Engineering and Formal Methods - Volume 836810.1007/978-3-319-05032-4_7(82-98)Online publication date: 23-Sep-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media