| Summary: | The article discusses computer memory models in the context of parallel programming, focusing on the ways in which multithreaded applications involving data races can lead to a mismatch between hardware and software. Topics addressed include the importance of data-race-freedom and interleaving semantics, and the relationship between data races, concurrency safety and debugging is also discussed. It is noted that shared variables and threads were supported by most operating systems even before the rise of multicore processing, and an argument is presented that the relevant memory models need to be fundamentally redefined, in order to provide a better match between the hardware and software involved.
|