Program Transformations in Weak Memory Models
dc.contributor.advisor
Aspinall, David
en
dc.contributor.author
Sevcik, Jaroslav
en
dc.date.accessioned
2009-10-27T13:30:30Z
dc.date.available
2009-10-27T13:30:30Z
dc.date.issued
2009
dc.description.abstract
We analyse the validity of common optimisations on multi-threaded programs in
two memory models—the DRF guarantee and the Java Memory Model. Unlike
in the single-threaded world, even simple program transformations, such as common
subexpression elimination, can introduce new behaviours in shared-memory
multi-threading with an interleaved semantics. To validate such optimisations,
most current programming languages define weaker semantics, called memory
models, that aim to allow such transformations while providing reasonable guarantees.
In this thesis, we consider common program transformations and analyse
their safety in the two most widely used language memory models: (i) the DRF
guarantee, which promises sequentially consistent behaviours for data race free
programs, and (ii) the Java Memory Model, which is the semantics of multithreaded
Java. The DRF guarantee is the semantics of Ada and it has been
proposed as the semantics of the upcoming revision of C++. Our key results
are: (i) we prove that a large class of elimination and reordering transformations
satisfies the DRF guarantee; (ii) we find that the Java language is more
restrictive—despite the claims in the specification, the Java Memory Model does
not allow some important program transformations, such as common subexpression
elimination.
To establish the safety results, we develop a trace semantic framework and
describe important program optimisations as relations on sets of traces. We
prove that all our elimination and reordering transformations satisfy the DRF
guarantee, i.e., the semantic transformations cannot introduce new behaviours
for data race free programs. Moreover, we prove that all the transformations
preserve data race freedom. This ensures safety of transformations composed
from eliminations and reorderings. In addition to the DRF guarantee, we prove
that for arbitrary programs, our transformations prevent values appearing “outof-
thin-air”—if a program does not contain constant c and does not perform any
operation that could create c, then no transformation of the program can output
c. We give an application of the semantic framework to a concrete language and
prove safety of several simple syntactic transformations.
We employ similar semantic techniques to prove validity of several classes of
transformations, such as the elimination of an overwritten write or reordering
of independent memory accesses, in the Java Memory Model. To establish the
iii
negative results for the Java Memory Model, we provide counterexamples showing
that several common optimisations can introduce new behaviours and thus are
not safe.
en
dc.identifier.uri
http://hdl.handle.net/1842/3132
dc.language.iso
en
dc.publisher
The University of Edinburgh
en
dc.subject
Informatics
en
dc.subject
Laboratory for Foundations of Computer Science
en
dc.title
Program Transformations in Weak Memory Models
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en
Files
Original bundle
1 - 1 of 1
- Name:
- Sevcik J PhD thesis 08.pdf
- Size:
- 1.03 MB
- Format:
- Adobe Portable Document Format
This item appears in the following Collection(s)

