Epoch Parallelism: One Execution Is Not Enough
The conventional approach for using multiprocessors requires programmers to write correct, scalable parallel programs. Unfortunately, writing such programs remains a daunting task, despite decades of research on parallel languages, programming models, static and dynamic analysis tools, and synchronization primitives. The authors argue that it is futile to expect programmers to write a program that is both correct and scalable. Instead, they propose a different style of parallel execution, called epoch parallelism that separates the goals of correctness and scalability into different executions.