• DocumentCode
    2504782
  • Title

    First class communication in MPI

  • Author

    Demaine, Erik

  • Author_Institution
    Dept. of Comput. Sci., Waterloo Univ., Ont., Canada
  • fYear
    1996
  • fDate
    1-2 Jul 1996
  • Firstpage
    189
  • Lastpage
    194
  • Abstract
    We compare three concurrent-programming languages based on message-passing: Concurrent ML (CML), Occam and MPI. The main advantage of the CML extension of Standard ML (SML) is that communication events are first-class just like normal program variables (e.g., integers), that is, they can be created at run-time, assigned to variables, and passed to and returned from functions. In addition, it provides dynamic process and channel creation. Occam, first designed for transputers, is based on a static model of process and channel creation. We examine how these limitations enforce severe restrictions on communication events, and how they affect the flexibility of Occam programs. The MPI (Message Passing Interface) standard provides a common way to access message-passing in C and Fortran. Although MPI was designed for parallel and distributed computation, it can also be viewed as a general concurrent-programming language. In particular most Occam features and several important facilities of CML can be implemented in MPI. For example, MPI-2 supports dynamic process and channel creation, and less general first-class communication events. We propose an extension to MPI which provides the CML choose, wrap, and guard combinators. This would make MPI a strong base for the flexible concurrency available in CML. Assuming that the modifications are incorporated into the standard and its implementations higher-order concurrency and its advantages will become more widespread
  • Keywords
    Occam; application program interfaces; message passing; parallel languages; parallel programming; software libraries; software standards; C; Concurrent ML; Fortran; MPI; Message Passing Interface; Occam; Standard ML; channel creation; communication events; concurrent-programming languages; dynamic process creation; higher-order concurrency; message-passing; run-time; standard; static model; Communication standards; Computer science; Concurrent computing; Data structures; Dynamic programming; Erbium; Runtime; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    MPI Developer's Conference, 1996. Proceedings., Second
  • Conference_Location
    Notre Dame, IN
  • Print_ISBN
    0-8186-7533-0
  • Type

    conf

  • DOI
    10.1109/MPIDC.1996.534113
  • Filename
    534113