• Title of article

    Formal specification of MPI 2.0: Case study in specifying a practical concurrent programming API

  • Author/Authors

    Guodong Li، نويسنده , , Robert Palmer، نويسنده , , Michael DeLisi، نويسنده , , Ganesh Gopalakrishnan، نويسنده , , Robert M. Kirby، نويسنده ,

  • Issue Information
    ماهنامه با شماره پیاپی سال 2011
  • Pages
    17
  • From page
    65
  • To page
    81
  • Abstract
    We describe the first formal specification of a non-trivial subset of MPI, the dominant communication API in high performance computing. Engineering a formal specification for a non-trivial concurrency API requires the right combination of rigor, executability, and traceability, while also serving as a smooth elaboration of a pre-existing informal specification. It also requires the modularization of reusable specification components to keep the length of the specification in check. Long-lived APIs such as MPI are not usually ‘textbook minimalistic’ because they support a diverse array of applications, a diverse community of users, and have efficient implementations over decades of computing hardware. We choose the TLA+ notation to write our specifications, and describe how we organized the specification of around 200 of the 300 MPI 2.0 functions. We detail a handful of these functions in this paper, and assess our specification with respect to the aforementioned requirements. We close with a description of possible approaches that may help render the act of writing, understanding, and validating the specifications of concurrency APIs much more productive.
  • Keywords
    Formal specification , TLA+ , model checking , MPI
  • Journal title
    Science of Computer Programming
  • Serial Year
    2011
  • Journal title
    Science of Computer Programming
  • Record number

    1080167