Download presentation

Presentation is loading. Please wait.

Published byReagan Baggerly Modified over 2 years ago

1
Implementing Sequentially Consistent Programs on Processor Consistent Platforms Lisa Higham and Jalal Kawash University of Calgary, Canada American University of Sharjah, UAE

2
Outline Memory consistency models –Sequential consistency –P-RAM –Coherence –PC-G Compiling from SC to PC-G –Good news –Bad news –Proof

3
Multi-Processor’s Computation PPPP..…… O o1o1 o1o1 o1o1 o1o1 o2o2 o2o2 o2o2 o2o2 o3o3 o3o3 o3o3 o3o3 ……..…

4
Sequential Consistency PPPP..…… Switch Shared Memory

5
Sequential Consistency: Example PPP xy r(y) 4 r(x) 2 w(x, 2) w(y, 1) w(x, 3) w(y, 4) w(x, 3) w(y, 4) r(y) 4 w(x, 2) w(y, 1) r(x) 2 0000003421

6
Sequential Consistency: Definition A computation is sequentially consistent iff a valid total order on O such that (O, ) (O, ) prog

7
P-RAM Copies of Memory P P P P FIFO Channels xyzxyz xyzxyz

8
P-RAM: Example w(x, 1) x 1 w(y, 2) y 2 P P P P PPPP r(y) 2 r(x) 0 r(x) 1 r(y) 0 w(y, 2)w(x, 1) 000021 000021 000021 000021 r(x) 1 r(y) 0 r(y) 2 r(x) 0 xy xy xy xy

9
P-RAM Definition A computation is P-RAM iff for each process p, a valid total order such that (O|p O|w, ) (O|p O|w, ) Lp ∩ prog ∩ Lp

10
Coherence x z y PPPP …...

11
x 2y 3 Coherence: Example 00 x y P PPP w(x, 2) r(y) 0r(x) 0 w(y, 3) 23 w(x, 2) r(y) 0 r(x) 0 w(y, 3) P

12
Coherence: Definition A computation is Coherent iff for each variable x, a valid total order such that (O| x, ) (O| x, ) progx x

13
PC-G: P-RAM and Coherence P-RAM Coherence PC-G

14
P-CG Definition A computation is P-CG iff for each process p, a valid total order such that –(O|p O|w, ) (O|p O|w, ) – processes q, and variable x: (O|w ∩ O|x, ) = (O|w ∩ O|x, ) Lp ∩ prog ∩ Lp Lq

15
P-CG vs. SC Algorithms are designed for SC machines Some of them work directly when run on P-CG (e.g. Peterson 2) Most of the SC algorithms do not work on P-CG machines (e.g. test&set and Bakery algorithm)

16
Can we transform an SC algorithm to an equivalent P-CG algorithm? Can we find a compiler that transforms any SC algorithm to an equivalent P-CG algorithm?

17
Program Transformation and Interpretation Program P Program α(P) Transformation α Interpretation D C= {Computations of P on SC machines} D= {Computations of α(P) on M machines} E = {Interpretations of D on SC machines} C E Execute P on SC Execute α(P) on PC-G

18
Program Implementation Program P Program α(P) Transformation α C E Interpretation D C= {SC Computations of P} D= {P-CG Computations of α(P)} E = {Interpretations of D} If program P, α implements P, then α is a compiler from SC to PC-G Execute P on SC Execute α(P) on PC-G

19
Transformation Function α m: a new multi-writer variable Instructionα(Instruction) write(s y, val)write(m, id(y)); write(s y, val); write(m, id(y)) read(s y )

20
Results Claim 1: – implements Lamport’s Bakery algorithm for 2 processes on PC-G Claim 2: – is a compiler from SC to PC-G for any program provided: Only 2 processes Only single-writer variables

21
Transformation Example PP w(x, 1) r(y) w(y, 4) w(y, 2) r(x) Program Under SC: if r(y) returns 4, then r(x) returns 1 Possible PC-G Views PP w(x, 1) w(y, 4) r(y) 4 w(y, 2) w(y, 4) w(y, 2) r(x) 0 w(x, 1) Under PC-G: r(y) returns 4 and r(x) may return 0

22
Transformation Example Program (Program) PP w(x, 1) r(x) w(y, 4) r(y) w(y, 2) w 4 (m, P) w 1 (m, P) w 2 (m, P) w 1 (m, P) w 2 (m, P) w 3 (m, P)

23
Transformation Example P P r(x) r(x) must return 1 w(x, 1)w(y, 4) w(y, 2) View for w 1 (m, P) w 2 (m, P) w 3 (m, P) w 4 (m, P) w 1 (m, P) w 2 (m, P) If r(y) returns 4 w(x, 1)w(y, 4) w(y, 2) w 1 (m, P) w 2 (m, P) w 3 (m, P) w 4 (m, P) w 1 (m, P) w 2 (m, P) r(y)

24
m m m m m m Proof Sketch PP w1w1 w w2w2..… m1m1 m5m5 m2m2 m3m3 m4m4 m6m6 Program PP PC-G Views … m1m1 m5m5 m2m2 m3m3 m4m4 m6m6 w w1w1 w2w2 System View … m1m1 m5m5 m2m2 m3m3 m4m4 m6m6 w w1w1 w2w2 ….. m2m2 m3m3 m4m4 m6m6 m1m1 m5m5

25
Proof Sketch System view – Contains all reads and writes by both processes –Maintains program order –Is valid

26
Summary Compiler: Only one additional variable Only writes to that variable Provided: Two processors Single writer variables

27
Impossibilities For more than 2 processors, there is no compiler from SC to PC-G that: Only adds write instructions (with any number of variables) nor Uses only one additional variable (with any number of reads and writes)

28
Pros and Cons Restricted –2 processes –Only single writer variables Valuable –ME Lamport’s Bakery algorithm –Wait-free test&set had no known solutions in weak memory consistency

29
Wait-Free Test&set Define test&set if (s i = you and s j ≠ rst) the return 1 repeat s i choose case s j is: you, rst: s i me me : s i you choose: s i random (me, you) end case until (s i ≠ s j ) if (s i = me) then return 0 else return 1 m i Define reset s i rst

30
Conclusions α works for any two-process program with single-writer variables α works for particular programs with > 2 processes (randomized wait-free n-process test&set) If there is a transformation that work for other cases, it must be more complicated: –Cannot be write-adding –Must use more than one additional variable

31
Thank You?Thank You?

32
m m m m m m Proof Sketch PP w1w1 w w2w2..… m1m1 m5m5 m2m2 m3m3 m4m4 m6m6 Program PP PC-G Views … m1m1 m5m5 m2m2 m3m3 m4m4 m6m6.. m2m2 m3m3 m4m4 m6m6 m1m1 m5m5 w w1w1 w2w2 System View … m1m1 m5m5 m2m2 m3m3 m4m4 m6m6 w w1w1 w2w2 …

Similar presentations

OK

C&O 355 Lecture 22 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A A A.

C&O 355 Lecture 22 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A A A.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on measuring brand equity Ppt on op amp circuits examples Ppt on life history of william shakespeare Ppt on credit policy in an organisation Ppt on history of olympics sports Ppt on tricks in mathematics Ppt on south african culture dance Ppt on new zealand culture and family tradition Convert pdf ppt to ppt online templates Download ppt on water level indicator