What is the architectural distinction between a "weakly ordered" and "strongly ordered" memory consistency model, and what implication does this have for software?
Correct! Well done.
Incorrect.
The correct answer is A) A strongly ordered model (e.g., sequential consistency) guarantees memory ops appear in program order across processors; a weakly ordered model allows reordering for performance, requiring software to use memory barriers for needed ordering
Correct Answer
A strongly ordered model (e.g., sequential consistency) guarantees memory ops appear in program order across processors; a weakly ordered model allows reordering for performance, requiring software to use memory barriers for needed ordering
Different architectures (e.g., x86 is relatively strongly ordered, ARM/POWER are weakly ordered) provide different default guarantees about the visibility and ordering of memory operations across cores; weakly ordered architectures require programmers to use memory barriers to achieve the same guarantees that come "for free" on stronger models.