Correct program parallelisations

被引:0
|
作者
S. Blom
S. Darabi
M. Huisman
M. Safari
机构
[1] BetterBe,
[2] ASML Veldhoven,undefined
[3] University of Twente,undefined
关键词
Software verification; Deterministic parallel programming; Parallelisation;
D O I
暂无
中图分类号
学科分类号
摘要
A commonly used approach to develop deterministic parallel programs is to augment a sequential program with compiler directives that indicate which program blocks may potentially be executed in parallel. This paper develops a verification technique to reason about such compiler directives, in particular to show that they do not change the behaviour of the program. Moreover, the verification technique is tool-supported and can be combined with proving functional correctness of the program. To develop our verification technique, we propose a simple intermediate representation (syntax and semantics) that captures the main forms of deterministic parallel programs. This language distinguishes three kinds of basic blocks: parallel, vectorised and sequential blocks, which can be composed using three different composition operators: sequential, parallel and fusion composition. We show how a widely used subset of OpenMP can be encoded into this intermediate representation. Our verification technique builds on the notion of iteration contract to specify the behaviour of basic blocks; we show that if iteration contracts are manually specified for single blocks, then that is sufficient to automatically reason about data race freedom of the composed program. Moreover, we also show that it is sufficient to establish functional correctness on a linearised version of the original program to conclude functional correctness of the parallel program. Finally, we exemplify our approach on an example OpenMP program, and we discuss how tool support is provided.
引用
收藏
页码:741 / 763
页数:22
相关论文
共 50 条
  • [1] Correct program parallelisations
    Blom, S.
    Darabi, S.
    Huisman, M.
    Safari, M.
    [J]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2021, 23 (05) : 741 - 763
  • [2] Verification of Loop Parallelisations
    Blom, Stefan
    Darabi, Saeed
    Huisman, Marieke
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2015, 2015, 9033 : 202 - 217
  • [3] PROGRAM TO CORRECT INAPPROPRIATE PRESCRIBING
    EVANS, CW
    [J]. AMERICAN JOURNAL OF HOSPITAL PHARMACY, 1989, 46 (01): : 69 - 70
  • [4] Predicting a Correct Program in Programming by Example
    Singh, Rishabh
    Gulwani, Sumit
    [J]. COMPUTER AIDED VERIFICATION, PT I, 2015, 9206 : 398 - 414
  • [5] CORRECT NUTRITION IN THE AFTERNOON PROGRAM OF THE ZDF
    不详
    [J]. ERNAHRUNGS-UMSCHAU, 1981, 28 (04): : 133 - 133
  • [6] Correct program slicing of database operations
    Tan, HBK
    Ling, TW
    [J]. IEEE SOFTWARE, 1998, 15 (02) : 105 - +
  • [7] Gencel: a program generator for correct spreadsheets
    Erwig, Martin
    Abraham, Robin
    Kollmansberger, Steve
    Cooperstein, Irene
    [J]. JOURNAL OF FUNCTIONAL PROGRAMMING, 2006, 16 : 293 - 325
  • [8] SYNTACTICALLY CORRECT MULTILEVEL STRUCTURED PROGRAM DESIGN
    NAGORNAYA, LI
    [J]. CYBERNETICS AND SYSTEMS ANALYSIS, 1991, 27 (05) : 730 - 736
  • [9] An abstract formalization of correct schemas for program synthesis
    Flener, P
    Lau, KK
    Ornaghi, M
    Richardson, J
    [J]. JOURNAL OF SYMBOLIC COMPUTATION, 2000, 30 (01) : 93 - 127
  • [10] PUSHING EXERCISE PROGRAM TO CORRECT GLOTTAL INCOMPETENCE
    YAMAGUCHI, H
    YOTSUKURA, Y
    SATA, H
    WATANABE, Y
    HIROSE, H
    KOBAYASHI, N
    BLESS, DM
    [J]. JOURNAL OF VOICE, 1993, 7 (03) : 250 - 256