Data races are common. They are difficult to detect, avoid, or eliminate, and programmers sometimes introduce them intentionally. However, shared-memory programs with data races have unexpected, erroneous behaviors. Intentional and unintentional data races lead to atomicity and sequential consistency (SC) violations, and they make it more difficult to understand, test, and verify software. Existing approaches for providing stronger guarantees for racy executions add high run-time overhead and/or rely on custom hardware. This paper shows how to provide stronger semantics for racy programs while providing relatively good performance on commodity systems. A novel hybrid static–dynamic anal-ysis called EnfoRSer provides end-to-end support for a...
Abstract. Low level data-races in multi-threaded software are hard to detect, especially when requir...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Concurrent programs are pervasive owing to the increasing adoption of multi-core systems across the ...
The Java memory model provides strong behavior guarantees for data-race-free executions. However, it...
A desirable concurrency semantics to provide for programs is region serializability. This strong sem...
Correctly synchronizing multithreaded programs is challenging, and errors can lead to program failur...
Correctly synchronizing multithreaded programs is challenging, and errors can lead to program failur...
Writing concurrent programs with shared memory is often not trivial. Correctly synchronising the thr...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
Region-based memory management is an alternative to standard tracing garbage collection that makes o...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Low level data-races in multi-threaded software are hard to detect, especially when requiring exhaus...
Previously we presented atomic sets, memory locations that share some consistency property, and unit...
Applications written for distributed-memory parallel archi-tectures must partition their data to ena...
Region-based memory management is a form of compile-time memory management, well-known from the func...
Abstract. Low level data-races in multi-threaded software are hard to detect, especially when requir...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Concurrent programs are pervasive owing to the increasing adoption of multi-core systems across the ...
The Java memory model provides strong behavior guarantees for data-race-free executions. However, it...
A desirable concurrency semantics to provide for programs is region serializability. This strong sem...
Correctly synchronizing multithreaded programs is challenging, and errors can lead to program failur...
Correctly synchronizing multithreaded programs is challenging, and errors can lead to program failur...
Writing concurrent programs with shared memory is often not trivial. Correctly synchronising the thr...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
Region-based memory management is an alternative to standard tracing garbage collection that makes o...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Low level data-races in multi-threaded software are hard to detect, especially when requiring exhaus...
Previously we presented atomic sets, memory locations that share some consistency property, and unit...
Applications written for distributed-memory parallel archi-tectures must partition their data to ena...
Region-based memory management is a form of compile-time memory management, well-known from the func...
Abstract. Low level data-races in multi-threaded software are hard to detect, especially when requir...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Concurrent programs are pervasive owing to the increasing adoption of multi-core systems across the ...