Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models

When optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most definitions of refinement are formulated in terms of valid syntactic transformations on the program code, or in ter...

Full description

Bibliographic Details
Main Authors: Kroening, D, Poetzl, D
Format: Conference item
Published: Springer Verlag 2016
_version_ 1797080047918514176
author Kroening, D
Poetzl, D
author_facet Kroening, D
Poetzl, D
author_sort Kroening, D
collection OXFORD
description When optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most definitions of refinement are formulated in terms of valid syntactic transformations on the program code, or in terms of valid transformations on thread execution traces. We present a new theory formulated instead in terms of state transitions between synchronization operations. Our new method shows refinement in more cases and leads to more efficient and simpler procedures for refinement checking. We develop the theory for the SCfor-DRF execution model (using locks for synchronization), and show that its application in compiler testing yields speedups of on average more than two orders of magnitude compared to a previous approach.
first_indexed 2024-03-07T00:54:32Z
format Conference item
id oxford-uuid:8793e851-566c-4120-8aa9-54ebc05526aa
institution University of Oxford
last_indexed 2024-03-07T00:54:32Z
publishDate 2016
publisher Springer Verlag
record_format dspace
spelling oxford-uuid:8793e851-566c-4120-8aa9-54ebc05526aa2022-03-26T22:11:35ZFormalizing and Checking Thread Refinement for Data-Race-Free Execution ModelsConference itemhttp://purl.org/coar/resource_type/c_5794uuid:8793e851-566c-4120-8aa9-54ebc05526aaSymplectic Elements at OxfordSpringer Verlag2016Kroening, DPoetzl, DWhen optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most definitions of refinement are formulated in terms of valid syntactic transformations on the program code, or in terms of valid transformations on thread execution traces. We present a new theory formulated instead in terms of state transitions between synchronization operations. Our new method shows refinement in more cases and leads to more efficient and simpler procedures for refinement checking. We develop the theory for the SCfor-DRF execution model (using locks for synchronization), and show that its application in compiler testing yields speedups of on average more than two orders of magnitude compared to a previous approach.
spellingShingle Kroening, D
Poetzl, D
Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title_full Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title_fullStr Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title_full_unstemmed Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title_short Formalizing and Checking Thread Refinement for Data-Race-Free Execution Models
title_sort formalizing and checking thread refinement for data race free execution models
work_keys_str_mv AT kroeningd formalizingandcheckingthreadrefinementfordataracefreeexecutionmodels
AT poetzld formalizingandcheckingthreadrefinementfordataracefreeexecutionmodels