With the spread of multi-core systems, the need to write concurrent programs in order to take advantage of their multi-core processors continues to grow. Developing concurrent programs free of errors is very difficult, due to their often non-deterministic nature. Further, weak memory models (WMMs) implemented in modern multi-core hardware architectures introduce additional executions that can lead to seemingly counter-intuitive results which confound the developers' reasoning. Although testing is a widely used approach to finding program errors, testing-only approaches, such as stress testing, remain highly ineffective for concurrency errors that rarely manifest themselves and are difficult to reproduce. Despite the substantial advancements...
Concurrency poses a major challenge for program verification, but it can also offer an opportunity t...
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurr...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Sequentialization translates concurrent programs into equivalent nondeterministic sequential program...
Sequentialization is one of the most promising approaches for the symbolic analysis of concurrent pr...
Developing correct concurrent software is a difficult task, due to the inherently non-deterministic ...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
We present CLAP, a new technique to reproduce concurrency bugs. CLAP has two key steps. First, it lo...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
We present CLAP, a new technique to reproduce concurrency bugs. CLAP has two key steps. First, it lo...
Developing correct and performant concurrent systems is a major challenge. When programming an appli...
Concurrency poses a major challenge for program verification, but it can also offer an opportunity t...
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurr...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Sequentialization translates concurrent programs into equivalent nondeterministic sequential program...
Sequentialization is one of the most promising approaches for the symbolic analysis of concurrent pr...
Developing correct concurrent software is a difficult task, due to the inherently non-deterministic ...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
We present CLAP, a new technique to reproduce concurrency bugs. CLAP has two key steps. First, it lo...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
We present CLAP, a new technique to reproduce concurrency bugs. CLAP has two key steps. First, it lo...
Developing correct and performant concurrent systems is a major challenge. When programming an appli...
Concurrency poses a major challenge for program verification, but it can also offer an opportunity t...
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurr...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...