2012
DOI: 10.1145/2345156.2254071
|View full text |Cite
|
Sign up to set email alerts
|

Deterministic parallelism via liquid effects

Abstract: Shared memory multithreading is a popular approach to parallel programming, but also fiendishly hard to get right. We present Liquid Effects, a type-and-effect system based on refinement types which allows for fine-grained, low-level, shared memory multithreading while statically guaranteeing that a program is deterministic. Liquid Effects records the effect of an expression as a formula in first-order logic, making our type-and-effect system highly expressive. Further, effects like Read and Write are recorded… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
8
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 11 publications
(8 citation statements)
references
References 32 publications
0
8
0
Order By: Relevance
“…In the past few years, several tools have been developed that use static [6,19,31] and dynamic [8,24] techniques to check that multi-threaded programs are deterministic. Rehearsal is a static determinacy checker for Puppet and leverages an SMT solver, thus is most closely related to Liquid Effects [19]. Liquid Effects establishes determinism by showing that concurrent effects are disjoint, but there are common examples of deterministic Puppet programs that do not have disjoint effects.…”
Section: Related Workmentioning
confidence: 99%
“…In the past few years, several tools have been developed that use static [6,19,31] and dynamic [8,24] techniques to check that multi-threaded programs are deterministic. Rehearsal is a static determinacy checker for Puppet and leverages an SMT solver, thus is most closely related to Liquid Effects [19]. Liquid Effects establishes determinism by showing that concurrent effects are disjoint, but there are common examples of deterministic Puppet programs that do not have disjoint effects.…”
Section: Related Workmentioning
confidence: 99%
“…The work [22] introduced an analyser for the C language in the low-level imperative environment based on Liquid Types and refinement types. The recent work on Liquid Types [15] applied the tool with SMT solvers to assist parallelisation of code regions by determining statically whether parallel threads will run on disjoint shared memory without races. Our work applies dependent session types to guarantee different kinds of safety, communication safety and deadlock freedom, in explicit message-passing based distributed and parallel programming rather than shared memory concurrency.…”
Section: Dependent Typing Systemsmentioning
confidence: 99%
“…This is similar to what we would need to support qualifier-dependent effects (e.g., showWhile in Section 4.5). Other effect systems are designed to reason about more general safe concurrency properties [16,17], but we are the first to build a polymorphic effect system for the issue of safe UI updates. Another approach would be to encapsulate UI actions within a monad, since every effect system gives rise to a monad [18].…”
Section: Potential Type System Extensionsmentioning
confidence: 99%