• DocumentCode
    3140779
  • Title

    A Formal CSP Framework for Message-Passing HPC Programming

  • Author

    Carter, J. ; Gardner, W.B.

  • Author_Institution
    Dept. of Comput. & Inf. Sci., Guelph Univ., Ont.
  • fYear
    2006
  • fDate
    38838
  • Firstpage
    1466
  • Lastpage
    1470
  • Abstract
    To help programmers of high-performance computing (HPC) systems avoid communication-related errors, we employ a formal process algebra, communicating sequential processes (CSP), which has a strict semantics for interprocess communication and synchronization. Verification tools are available for CSP-specified programs to prove the absence of failures such as deadlock, and to explore potential multiprocess interactions. By introducing a CSP abstraction layer on top of the popular MPI message-passing primitives, we create a framework, called CSP4MPI, designed to largely hide the complexity of parallel programming for HPC. CSP4MPI is comprised of a C++ class library that provides a CSP-based process model, and a "cookbook" of candidate solutions for HPC programmers not trained in CSP. Developers can prototype their systems using CSP, and use verification tools to examine possible points of failure before implementing via the CSP4MPI library. Alternatively, they may choose an existing, verified solution from a number of common parallel application archetypes. By using CSP4MPI, HPC developers leverage the benefits of formal specification and verification in their work, in addition to obtaining an alternate method to developing HPC applications
  • Keywords
    C++ language; communicating sequential processes; formal specification; formal verification; message passing; parallel programming; software libraries; synchronisation; C++ class library; MPI; communicating sequential process; formal process algebra; formal specification; formal verification; high-performance computing; interprocess communication; message passing; parallel programming; synchronization; Algebra; Application software; Communication system control; Concurrent computing; Information science; Libraries; Parallel programming; Programming profession; Prototypes; System recovery; CSP; HPC; MPI; parallel patterns; selective formalism;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Electrical and Computer Engineering, 2006. CCECE '06. Canadian Conference on
  • Conference_Location
    Ottawa, Ont.
  • Print_ISBN
    1-4244-0038-4
  • Electronic_ISBN
    1-4244-0038-4
  • Type

    conf

  • DOI
    10.1109/CCECE.2006.277495
  • Filename
    4054886