60 likes | 78 Views
Explore the concept of epoch parallelism, combining fast and buggy with slow and correct executions for improved programming efficiency. Research by Jessica Ouyang and team at the University of Michigan.
E N D
Epoch parallelism:One execution is not enough Jessica Ouyang, Kaushik Veeraraghavan, Dongyoon Lee, Peter Chen, Jason Flinn, Satish Narayanansamy University of Michigan OSDI ’10 Research Visions 3 October 2010
Motivation • Write a single program that is both fast & correct • Make it easier for programmers • Change approach to programming • Write program that is fast or correct – not both • Combine multiple, specialized executions • Fast/buggy accelerates slow/correct • Slow/correct checks fast/buggy Fast & Correct Fast & Buggy Fast & Buggy Slow & Correct Slow & Correct Jessica Ouyang
Epoch parallelism Fast & buggy Slow & correct E0 E0 E1 E1 E1 E2 != ==? 1. Checkpoint state E3 E2 E2 2. Start epoch 3. Check state E3 E3 4. Roll back &Re-execute E3 E3 Time Jessica Ouyang
Uniprocessor execution Multiprocessor Uniprocessor CPU 0 CPU 1 CPU 2 CPU 3 A0 A0 B0 E0 • Nice properties of uniprocessor • Fewer races • Stronger memory consistency model • Easier to replay A1 B1 E1 E0 E1 A1 Performance B0 B1 Jessica Ouyang
Using epoch parallelism Multi-threaded Single-threaded CPU 0 CPU 1 CPU 2 CPU 3 E0 S0 A0 B0 E0 Transform function A1 B1 E1 E1 S1 • Challenges • Importingstate to start epochs • Checking state Jessica Ouyang
Conclusion • Rethink having a single program/execution be both fast & correct • Use separate, specialized executions to achieve different goals Jessica Ouyang - University of Michigan