Epoch Parallelism - University of Michigan

Download Report

Transcript Epoch Parallelism - University of Michigan

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
1
Motivation
• Write a single program that is
both fast & correct
• Make it easier for programmers
Fast &
Correct
– 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
Jessica Ouyang
Fast &
Buggy
Slow &
Correct
2
Epoch parallelism
Fast & buggy
Slow & correct
E0
E0
E1
E2
E1
==?
!=
E3
Time
1. Checkpoint
E2
E3
2. Start epoch
state
3.
state
4. Check
Roll back
&
Re-execute
E3
E3
Jessica Ouyang
3
Uniprocessor execution
Multiprocessor
CPU 0
E0 A0
E1
A1
Uniprocessor
CPU 1
B0
B1
CPU 2
A0
CPU 3
E0
B0
Nice properties
of uniprocessor
A1
-Fewer races
-Stronger memory
consistency model
-Easier to replay
E1
Performance
B1
Jessica Ouyang
4
Using epoch parallelism
Multi-threaded
CPU 0
Single-threaded
CPU 1
E0 A0
B0
A1
B1
E1
Challenges
CPU 2
CPU 3
S0
E0
S1
E1
Transform function
-Importing state to
start epochs
-Checking state
Jessica Ouyang
5
Conclusion
• Rethink having a single program/execution
be both fast & correct
• Use separate, specialized executions to
achieve different goals
Jessica Ouyang - University of Michigan
6