Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Found 2009
DOI: 10.1145/1595696.1595700
|View full text |Cite
|
Sign up to set email alerts
|

Asserting and checking determinism for multithreaded programs

Abstract: The trend towards processors with more and more parallel cores is increasing the need for software that can take advantage of parallelism. The most widespread method for writing parallel software is to use explicit threads. Writing correct multithreaded programs, however, has proven to be quite challenging in practice. The key difficulty is non-determinism. The threads of a parallel application may be interleaved non-deterministically during execution. In a buggy program, non-deterministic scheduling will lead… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
44
0

Year Published

2010
2010
2022
2022

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 63 publications
(44 citation statements)
references
References 56 publications
0
44
0
Order By: Relevance
“…Other applications of relational methods include regression verification [13], verification of 2-safety properties [22,10], including determinism [8]. Furthermore, quantitative properties such as continuity [9] or indistinguishability [15] appear as a natural generalization of 2-safety properties.…”
Section: Related Workmentioning
confidence: 99%
“…Other applications of relational methods include regression verification [13], verification of 2-safety properties [22,10], including determinism [8]. Furthermore, quantitative properties such as continuity [9] or indistinguishability [15] appear as a natural generalization of 2-safety properties.…”
Section: Related Workmentioning
confidence: 99%
“…Several parallel correctness criteria, including data-race freedom [26], atomicity [16], linearizability [19], and determinism [2,5] have been studied for shared memory parallel programs that separate the reasoning about functionality and parallelism at different granularities of execution. All these criteria provide the separation between parallel and functional correctness partially, as the restriction on thread interleavings is limited, for example, to atomic block boundaries.…”
Section: Related Workmentioning
confidence: 99%
“…Their abstraction techniques resemble identifying irrelevant events by a dependency analysis. However, lack of dynamic information during the static verification is a bottleneck in automating their overall approach DETERMIN [6] infers likely semantic determinism specifications [5] for parallel programs. This is done by monitoring and analyzing program states during parallel executions of the program and generating pre-and post-bridge predicates [5], conjunctions of equality predicates over program variables from pairs of program executions.…”
Section: Related Workmentioning
confidence: 99%
“…That means for each possible input, the design must produce the same output under any valid process schedule. Determinism verification has been considered for concurrent software [15], [16], however, approaches for SystemC requires special consideration of its concurrency semantics. In SystemC context, we also show that determinism verification is stronger than both deadlock detection and race analysis, and discuss the benefits of determinism regarding enhancement of both simulative and formal verification.…”
Section: Introductionmentioning
confidence: 99%