Sciweavers

ISCA
2009
IEEE

A case for an interleaving constrained shared-memory multi-processor

13 years 11 months ago
A case for an interleaving constrained shared-memory multi-processor
Shared-memory multi-threaded programming is inherently more difficult than single-threaded programming. The main source of complexity is that, the threads of an application can interleave in so many different ways. To ensure correctness, a programmer has to test all possible thread interleavings, which, however, is impractical. Many rare thread interleavings remain untested in production systems, and they are the root cause for a majority of concurrency bugs. We propose a shared-memory multiprocessor design that avoids untested interleavings to improve the correctness of a multi-threaded program. Since untested interleavings tend to occur infrequently at runtime, the performance cost of avoiding them is not high. We propose to encode the set of tested correct interleavings in a program’s binary executable using Predecessor Set (PSet) constraints. These constraints are efficiently enforced at runtime using processor support, which ensures that the runtime follows a tested interleavi...
Jie Yu, Satish Narayanasamy
Added 24 May 2010
Updated 24 May 2010
Type Conference
Year 2009
Where ISCA
Authors Jie Yu, Satish Narayanasamy
Comments (0)