Synchronization Debugging of Hybrid Parallel Programs

Research output: Contribution to book/conference proceedings/anthology/reportConference contributionContributedpeer-review

Abstract

In this paper we address the problem of locating race conditions among synchronization primitives in execution traces of hybrid parallel programs. In hybrid parallel programs collective and point-to-point synchronization can’t be analyzed separately. We introduce a model for synchronization primitives and formally define synchronization races with respect to the model. Based on these concepts we present an algorithm which accurately detects synchronization races and yields a task graph of the execution trace. The task graph represents the guaranteed ordering of events across thread and process boundaries. It is an essential core element for the further analysis (e.g. a data race detection) of a program. Depending on the synchronization model task graph construction can be an NP-hard problem. Our model allows to construct an algorithm with sub-quadratic time complexity. Thus programs adhering to the principles of our model are provable against race conditions. Therefore we argue, that our model should be used as a foundation for the design and implementation of synchronization functions.

Details

Original languageEnglish
Title of host publicationEuro-Par 2016: Parallel Processing
EditorsPierre-François Dutot, Denis Trystram
Place of PublicationCham
PublisherSpringer International Publishing AG
Pages37-50
Number of pages14
ISBN (print)978-3-319-43659-3
Publication statusPublished - 2016
Peer-reviewedYes

External IDs

Scopus 84984799156

Keywords

Research priority areas of TU Dresden