TY - GEN
T1 - Volition
T2 - 18th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2013
AU - Qian, Xuehai
AU - Torrellas, Josep
AU - Sahelices, Benjamin
AU - Qian, Depei
PY - 2013
Y1 - 2013
N2 - Sequential Consistency (SC) is the most intuitive memory model, and SC Violations (SCVs) produce unintuitive, typically incorrect executions. Most prior SCV detection schemes have used data races as proxies for SCVs, which is highly imprecise. Other schemes that have targeted data-race cycles are either too conservative or are designed only for two-processor cycles and snoopy-based systems. This paper presents Volition, the first hardware scheme that detects SCVs in a relaxed-consistency machine precisely, in a scalable manner, and for an arbitrary number of processors in the cycle. Volition leverages cache coherence protocol transactions to dynamically detect cycles in memory-access orders across threads. When a cycle is about to occur, an exception is triggered. Volition can be used in both directory- and snoopy-based coherence protocols. Our simulations of Volition in a 64-processor multicore with directorybased coherence running SPLASH-2 and Parsec programs shows that Volition induces negligible traffic and execution overhead. In addition, it can detect SCVs with several processors. Volition is suitable for on-the-fly use.
AB - Sequential Consistency (SC) is the most intuitive memory model, and SC Violations (SCVs) produce unintuitive, typically incorrect executions. Most prior SCV detection schemes have used data races as proxies for SCVs, which is highly imprecise. Other schemes that have targeted data-race cycles are either too conservative or are designed only for two-processor cycles and snoopy-based systems. This paper presents Volition, the first hardware scheme that detects SCVs in a relaxed-consistency machine precisely, in a scalable manner, and for an arbitrary number of processors in the cycle. Volition leverages cache coherence protocol transactions to dynamically detect cycles in memory-access orders across threads. When a cycle is about to occur, an exception is triggered. Volition can be used in both directory- and snoopy-based coherence protocols. Our simulations of Volition in a 64-processor multicore with directorybased coherence running SPLASH-2 and Parsec programs shows that Volition induces negligible traffic and execution overhead. In addition, it can detect SCVs with several processors. Volition is suitable for on-the-fly use.
KW - Memory consistency
KW - Parallel programming
KW - Sequential consistency
KW - Shared-memory multiprocessors
UR - http://www.scopus.com/inward/record.url?scp=84875676495&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84875676495&partnerID=8YFLogxK
U2 - 10.1145/2451116.2451174
DO - 10.1145/2451116.2451174
M3 - Conference contribution
AN - SCOPUS:84875676495
SN - 9781450318709
T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
SP - 535
EP - 548
BT - ASPLOS 2013 - 18th International Conference on Architectural Support for Programming Languages and Operating Systems
Y2 - 16 March 2013 through 20 March 2013
ER -