EEMCS

Home > Publications
Home University of Twente
Education
Research
Prospective Students
Jobs
Publications
Intranet (internal)
 
 Nederlands
 Contact
 Search
 Organisation

EEMCS EPrints Service


27789 A Verification Technique for Deterministic Parallel Programs (extended version)
Home Policy Brochure Browse Search User Area Contact Help

Darabi, S. and Blom, S.C.C. and Huisman, M. (2017) A Verification Technique for Deterministic Parallel Programs (extended version). Technical Report TR-CTIT-17-01, Centre for Telematics and Information Technology, University of Twente, Enschede. ISSN 1381-3625

Full text available as:

PDF

617 Kb

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: parallel, vectorized and sequential blocks, which can be composed using three different composition operators: sequential, parallel and fusion composition. We show that it is sufficient to have contracts for the basic blocks to prove correctness of the compiler directives, and moreover that functional correctness of the sequential program implies correctness of the parallelized program. We formally prove correctness of our approach. In addition, we define a widely-used subset of OpenMP that can be encoded into our core language, thus effectively enabling the verification of OpenMP compiler directives, and we discuss automated tool support for this verification process.

Item Type:Internal Report (Technical Report)
Research Group:EWI-FMT: Formal Methods and Tools
Research Program:CTIT-General
Research Project:VerCors: Verification of Concurrent Data Structures, CARP: Correct And Efficient Accelerator Programming, VERDI: Verification Of Distributed Software
ID Code:27789
Deposited On:27 February 2017
More Information:statistics

Export this item as:

To correct this item please ask your editor

Repository Staff Only: edit this item