The document discusses the challenges of defining memory models for shared memory parallel programs. It argues that there is emerging consensus around an interleaving semantics called Sequential Consistency, but only for programs that are free of data races. This allows for important compiler and hardware optimizations while restricting reordering around synchronization. However, languages like Java cannot outlaw all data races, so the meaning of programs with races remains unclear. The document explores some speculative solutions to address this major open problem.