2017
DOI: 10.1007/978-3-319-57288-8_17
|View full text |Cite
|
Sign up to set email alerts
|

A Verification Technique for Deterministic Parallel Programs

Abstract: A commonly used approach to develop 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 prove correctness of compiler directives combined with functional correctness of the program. We propose syntax and semantics for a simple core language, capturing the main forms of deterministic parallel programs. This language distinguishes three kinds of basic blocks: paral… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
12
0

Year Published

2017
2017
2021
2021

Publication Types

Select...
4
1
1

Relationship

5
1

Authors

Journals

citations
Cited by 9 publications
(12 citation statements)
references
References 22 publications
0
12
0
Order By: Relevance
“…To reason about loop parallelisations, and to show that the parallelisation of a loop does not change its behaviour, we introduced the notion of iteration contracts [4,11]: an iteration contract specifies a contract that should hold for every iteration of the loop. This iteration contract should specify at least which variables are read and written by one iteration of the loop, but it can be extended with functional properties.…”
Section: Iteration Contractmentioning
confidence: 99%
“…To reason about loop parallelisations, and to show that the parallelisation of a loop does not change its behaviour, we introduced the notion of iteration contracts [4,11]: an iteration contract specifies a contract that should hold for every iteration of the loop. This iteration contract should specify at least which variables are read and written by one iteration of the loop, but it can be extended with functional properties.…”
Section: Iteration Contractmentioning
confidence: 99%
“…When this approach is used, a programmer is greatly helped by automated verification of these compiler directives. For basic compiler directives, we developed verification techniques to prove the correctness of these parallelisations, i.e., to prove that if the program is parallelised, its behaviour will be equivalent to the behaviour of the sequential program [11,22], but this approach is still in its early stages, and needs to be developed further, allowing for more advanced compilation patterns.…”
Section: Verification Of Programs Using Different Concurrency Paradigmsmentioning
confidence: 99%
“…More verified OpenMP examples are available online 1 . In Section 4.3, we precisely identified a commonly used subset of OpenMP programs that can be encoded into PPL programs, that also identifies the subset of OpenMP programs that can be verified with our approach.…”
Section: Verification Of Openmp Programsmentioning
confidence: 99%
“…This chapter is based on the papers "Verification of Loop Parallelisations" and "Verifying Parallel Loops with Separation Logic", which were published at FASE 2015 [BDH] and PLACES 2014 [BDH14] respectively. Deterministic Parallel Programs", which was published at NFM 2017 [DBH17a] and its extended version [DBH17b].…”
mentioning
confidence: 99%
See 1 more Smart Citation