• DocumentCode
    1336967
  • Title

    Toward formally-based design of message passing programs

  • Author

    Gorlatch, Sergei

  • Author_Institution
    Passau Univ., Germany
  • Volume
    26
  • Issue
    3
  • fYear
    2000
  • fDate
    3/1/2000 12:00:00 AM
  • Firstpage
    276
  • Lastpage
    288
  • Abstract
    Presents a systematic approach to the development of message passing programs. Our programming model is SPMD, with communications restricted to collective operations: scan, reduction, gather, etc. The design process in such an architecture-independent language is based on correctness-preserving transformation rules that are provable in a formal functional framework. We develop a set of design rules for composition and decomposition. For example, scan followed by reduction is replaced by a single reduction, and global reduction is decomposed into two faster operations. The impact of the design rules on the target performance is estimated analytically and tested in machine experiments. As a case study, we design two provably correct, efficient programs using the Message Passing Interface (MPI) for the famous maximum segment sum problem, starting from an intuitive, but inefficient, algorithm specification
  • Keywords
    application program interfaces; distributed programming; formal specification; message passing; software performance evaluation; MPI; Message Passing Interface; SPMD programming model; algorithm specification; architecture-independent language; collective operations; composition; correctness-preserving transformation rules; decomposition; design rules; efficient programs; formal functional framework; formally-based design; gathering operation; homomorphisms; maximum segment sum problem; message passing programs; performance; program transformations; reduction operation; scanning operation; skeletons; systematic program design; Algorithm design and analysis; Design methodology; Message passing; Parallel architectures; Parallel programming; Performance analysis; Process design; Programming profession; Skeleton; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.842952
  • Filename
    842952