skip to main content
tutorial

Session types: towards safe and fast reconfigurable programming

Published:25 March 2012Publication History
Skip Abstract Section

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

Index Terms

  1. Session types: towards safe and fast reconfigurable programming

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • 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

            Copyright © 2012 Authors

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 25 March 2012

            Check for updates

            Qualifiers

            • tutorial

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!