The general problem of verifying coherence for shared-memory multiprocessor executions is NP-Complete. Verifying memory consistency models is therefore NP-Hard, because memory consistency models require coherence for some or all operations. However, verifying memory consistency remains NP-Complete for executions known to be coherent. Categories and Subject Descriptors B.8.1 [Hardware]: Performance and Reliability—Reliability, Testing, and Fault-Tolerance; F2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems—Sequencing and Scheduling. General Terms Verification, Reliability, Theory, Algorithms. Keywords Shared Memory, Coherence, Consistency Models.
Jason F. Cantin, Mikko H. Lipasti, James E. Smith