SLIDE 1
P❛r❛❧❧❡❧ ❈♦♠❜✐♥✐♥❣✿ ❇❡♥❡✜ts ♦❢ ❊①♣❧✐❝✐t ❙②♥❝❤r♦♥✐③❛t✐♦♥
❱✐t❛❧② ❆❦s❡♥♦✈✱ ■❚▼❖ ❯♥✐✈❡rs✐t② P❡tr ❑✉③♥❡ts♦✈✱ ❚❡❧❡❝♦♠ P❛r✐s❚❡❝❤ ❆♥❛t♦❧② ❙❤❛❧②t♦✱ ■❚▼❖ ❯♥✐✈❡rs✐t② ❖P❖❉■❙ ✷✵✶✽
SLIDE 2 P❛r❛❧❧❡❧ Pr♦❣r❛♠s ❛♥❞ ❈♦♥❝✉rr❡♥t ❉❛t❛ ❙tr✉❝t✉r❡s
P❛r❛❧❧❡❧ ♣r♦❣r❛♠s
input
...
❈♦♥❝✉rr❡♥t ❞❛t❛ str✉❝t✉r❡s
...
input
input
...
input
...
... ...
SLIDE 3
❇❛t❝❤❡❞ ❉❛t❛ ❙tr✉❝t✉r❡s
◮ ●✐✈❡♥ ❛ ✏❜❛t❝❤✑ ❛♥❞ ❛ st❛t❡ ♣r♦❞✉❝❡s ❛ ♥❡✇ st❛t❡ ❛♥❞ ❛ ✈❡❝t♦r ♦❢ r❡s♣♦♥s❡s✳ ◮ P❛r❛❧❧❡❧ ❜❛t❝❤❡❞ ❞❛t❛ str✉❝t✉r❡s
◮ ❙t❛t✐❝ ♠✉❧t✐t❤r❡❛❞✐♥❣✿ P❘❆▼✱ ❇✉❧❦ s②♥❝❤r♦♥♦✉s ❬❱❛❧✾✵❪✱ ❛s②♥❝❤r♦♥♦✉s P❘❆▼ ❬●✐❜✽✾❪✱ ✳✳✳✳ ◮ ❉②♥❛♠✐❝ ♠✉❧t✐✲t❤r❡❛❞✐♥❣✿ s♣❛✇♥✱ s②♥❝✱ ♣❛r❛❧❧❡❧✲❢♦r✱ ✇♦r❦✲st❡❛❧✐♥❣
◮ ❈❛♥ ✇❡ ✉s❡ t❤❡ ❜❡♥❡✜ts ♦❢ ♣❛r❛❧❧❡❧ ❜❛t❝❤❡❞ ❞❛t❛ str✉❝t✉r❡s❄
SLIDE 4
❈♦♠❜✐♥✐♥❣ ❬❖②❛♠❛ ❡t ❛❧✳✱ ✶✾✾✾❪✱ ❬❍❡♥❞❧❡r ❡t ❛❧✳✱ ✷✵✶✵❪
◮ P✉t r❡q✉❡st ✐♥t♦ ♣✉❜❧✐❝❛t✐♦♥ ❧✐st❀ ◮ ❚❤❡♥✱ ❝♦♠♣❡t❡ ❢♦r ❛ ❧♦❝❦✿ ✐❢ ✇♦♥ ✖ ❜❡❝♦♠❡s ❛ ❝♦♠❜✐♥❡r✱ ♦t❤❡r✇✐s❡✱ ❜❡❝♦♠❡s ❛ ❝❧✐❡♥t❀ ◮ ❚❤❡ ❝♦♠❜✐♥❡r ❛♣♣❧✐❡s r❡q✉❡sts s❡q✉❡♥t✐❛❧❧②✳ ◮ ❍✐❡r❛r❝❤✐❝❛❧ ❋❧❛t✲❈♦♠❜✐♥✐♥❣ ❬❍❡♥❞❧❡r ❡t ❛❧✳✱ ✷✵✶✵❪
◮ ❚✇♦ ❧❡✈❡❧s ♦❢ ❝♦♠❜✐♥✐♥❣✳
SLIDE 5
P❛r❛❧❧❡❧ ❈♦♠❜✐♥✐♥❣
◮ P✉t r❡q✉❡st ✐♥t♦ ♣✉❜❧✐❝❛t✐♦♥ ❧✐st❀ ◮ ❚❤❡♥✱ ❝♦♠♣❡t❡ ❢♦r ❛ ❧♦❝❦✿ ✐❢ ✇♦♥ ✖ ❜❡❝♦♠❡s ❛ ❝♦♠❜✐♥❡r✱ ♦t❤❡r✇✐s❡✱ ❜❡❝♦♠❡s ❛ ❝❧✐❡♥t❀ ◮ ❚❤❡ ❝♦♠❜✐♥❡r ❛♥❞ ❝❧✐❡♥ts ❛♣♣❧② r❡q✉❡sts ✐♥ ♣❛r❛❧❧❡❧ ✉s✐♥❣ ❛ ♣❛r❛❧❧❡❧ ❜❛t❝❤❡❞ ❞❛t❛ str✉❝t✉r❡✳
SLIDE 6
P❛r❛❧❧❡❧ ❈♦♠❜✐♥✐♥❣
❡①❡❝✉t❡✭♠❡t❤♦❞✱ ✐♥♣✉t✮✿ r❡q ← ♥❡✇ ❘❡q✉❡st✭✮ r❡q✉❡st✳♠❡t❤♦❞ ← ♠❡t❤♦❞ r❡q✉❡st✳✐♥♣✉t ← ✐♥♣✉t r❡q✳st❛t✉s ← ■◆■❚■❆▲ ✐❢ C✳❛❞❞❘❡q✉❡st✭r❡q✮✿ ❆ ← C✳❣❡t❘❡q✉❡sts✭✮ ❈❖▼❇■◆❊❘❴❈❖❉❊ C✳r❡❧❡❛s❡✭✮ ❡❧s❡✿ ✇❤✐❧❡ r❡q✳st❛t✉s ❂ ■◆■❚■❆▲✿ ♥♦♣ ❈▲■❊◆❚❴❈❖❉❊ r❡t✉r♥
SLIDE 7
❘❡❛❞✲❖♣t✐♠✐③❡❞ ❉❛t❛ ❙tr✉❝t✉r❡s
◮ ❖♣❡r❛t✐♦♥s ♦❢ t✇♦ t②♣❡s✿
◮ ❘❡❛❞✲♦♥❧② ♠❛② ♣r♦❝❡❡❞ ✐♥ ♣❛r❛❧❧❡❧❀ ◮ ❯♣❞❛t❡s ♥♦t ❛❧✇❛②s
◮ ❈♦♠❜✐♥❡r ❝♦❧❧❡❝ts r❡q✉❡sts✳
◮ ❘❡❛❞✲♦♥❧② ❛r❡ ♣❡r❢♦r♠❡❞ ✐♥ ♣❛r❛❧❧❡❧ ♦♥ ❝❧✐❡♥ts❀ ◮ ❯♣❞❛t❡s ❛r❡ ♣❡r❢♦r♠❡❞ s❡q✉❡♥t✐❛❧❧② ❜② t❤❡ ❝♦♠❜✐♥❡r✳
SLIDE 8
❘❡❛❞✲❖♣t✐♠✐③❡❞ ❉❛t❛ ❙tr✉❝t✉r❡s
◮ ❚❤❡ r❡s✉❧t✐♥❣ ❝♦♥❝✉rr❡♥t ❞❛t❛ str✉❝t✉r❡s ❛r❡ ❧✐♥❡❛r✐③❛❜❧❡✳
SLIDE 9
❘❡❛❞✲❖♣t✐♠✐③❡❞ ❉❛t❛ ❙tr✉❝t✉r❡s✳ ❊①❛♠♣❧❡
◮ ❉②♥❛♠✐❝ ❣r❛♣❤ ❬❍♦❧♠ ❡t ❛❧✳✱ ✷✵✵✶❪✿
◮ ❘❡❛❞✲♦♥❧②✿ ❛r❡❈♦♥♥❡❝t❡❞✭✉✱ ✈✮ ◮ ❯♣❞❛t❡✿ ❛❞❞❊❞❣❡✭✉✱ ✈✮✱ r❡♠♦✈❡❊❞❣❡✭✉✱ ✈✮
SLIDE 10 ❉②♥❛♠✐❝ ❣r❛♣❤✳ ❊①♣❡r✐♠❡♥ts
20 40 60 0.1 0.2 0.3 Tree workload Ratio: 50% 20 40 60 0.2 0.4 Ratio: 80% 20 40 60 1 2 3 Ratio: 100% 20 40 60 0.05 0.1 0.15 Number of Processes Trees workload 20 40 60 0.1 0.2 0.3 Number of Processes 20 40 60 1 2 3 Number of Processes Throughput, mops/s PC Lock RW Lock FC
SLIDE 11
Pr✐♦r✐t② q✉❡✉❡
◮ ❖r❞❡r❡❞ s❡t ♦❢ ✈❛❧✉❡s❀ ◮ ■♥s❡rt✭✈✮❀ ◮ ❊①tr❛❝t▼✐♥✭✮✳ ◮ ❈❤❛❧❧❡♥❣❡✿ ✜♥❞ ❛ ♣❛r❛❧❧❡❧ ❜❛t❝❤❡❞ ❛❧❣♦r✐t❤♠ ✇✐t❤ ❝♦♠♣❧❡①✐t② t❤❛t ❞❡♣❡♥❞s ♦♥❧② ♦♥ t❤❡ ❜❛t❝❤ s✐③❡ ❛♥❞ t❤❡ s✐③❡ ♦❢ t❤❡ ❤❡❛♣✳
SLIDE 12
❇✐♥❛r② ❤❡❛♣
◮ ❇✐♥❛r② ❤❡❛♣ st♦r❡❞ ✐♥ ❛rr❛② ❛❬✶✱. . .✱ s❪✿ ♥♦❞❡ i ❤❛s ❝❤✐❧❞r❡♥ ✷i ❛♥❞ ✷i + ✶ ✇✐t❤ ❤✐❣❤❡r ✈❛❧✉❡s✳ ◮ ❆❧❣♦r✐t❤♠ ❬●♦♥♥❡t ❛♥❞ ▼✉♥r♦✱ ✶✾✽✻❪
◮ ❊①tr❛❝t▼✐♥✭✮✿ s✇❛♣ ❛❬✶❪ ❛♥❞ ❛❬s❪✱ t❤❡♥ s✐❢t✲❞♦✇♥❀ ◮ ■♥s❡rt✭✈✮✿ tr❛✈❡rs❡ t❤❡ ♣❛t❤ ❢r♦♠ t❤❡ r♦♦t t♦ ❛❬s ✰ ✶❪✳
SLIDE 13
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ❊①tr❛❝t▼✐♥
◮ ❈♦♠❜✐♥❡r ✇✐t❤ E ❡①tr❛❝t▼✐♥ r❡q✉❡sts✿
◮ ▲♦❝❛t❡ E ♥♦❞❡s ✇✐t❤ t❤❡ s♠❛❧❧❡st ✈❛❧✉❡s ✉s✐♥❣ ❉✐❥❦str❛✲❧✐❦❡ ❛❧❣♦r✐t❤♠❀ ◮ ❙✇❛♣ t❤❡ ✈❛❧✉❡s ✇✐t❤ E ❧❛t❡st ✈❛❧✉❡s ❛❬s ✲ ❊ ✰ ✶❪✱ . . .✱ ❛❬s❪❀ ◮ ■♥✐t✐❛t❡ ♣❛r❛❧❧❡❧ s✐❢t✲❞♦✇♥ ♦♥ ❝❧✐❡♥ts ❢r♦♠ t❤❡ ❧♦❝❛t❡❞ ♥♦❞❡s❀ ◮ ❉♦♥❡ ✉s✐♥❣ ❤❛♥❞✲♦✈❡r✲❤❛♥❞ ❧♦❝❦✐♥❣✳
SLIDE 14 P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
◮ ❈♦♠❜✐♥❡r ✇✐t❤ I ✐♥s❡rt r❡q✉❡sts✿
◮ ❚❛r❣❡t ♥♦❞❡s✿ ❛❬s ✰ ✶❪✱ . . .✱ ❛❬s ✰ ⑤■⑤❪❀ ◮ ▲♦❝❛t❡ ⑤■⑤ ✲ ✶ s♣❧✐t ♥♦❞❡s❀ ◮ ❙♦rt vs+✶, . . . , vs+|I| ✈❛❧✉❡s t♦ ✐♥s❡rt❀ ◮ ■♥✐t✐❛t❡ ❛ tr❛✈❡rs❛❧ ❢r♦♠ t❤❡ r♦♦t t♦ t❛r❣❡t ♥♦❞❡s✱ s♣❧✐tt✐♥❣ s❡t ♦❢ ✈❛❧✉❡s t♦ ✐♥s❡rt ✐♥t♦ t✇♦ s❡ts ✐♥ s♣❧✐t ♥♦❞❡s✳
Split nodes Target nodes
U1 U2 U3
SLIDE 15
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣
◮ ❚❤❡ r❡s✉❧t✐♥❣ ❝♦♥❝✉rr❡♥t ❜✐♥❛r② ❤❡❛♣ ✐s ❧✐♥❡❛r✐③❛❜❧❡✳ ◮ ❈♦♠❜✐♥❡r ❛♥❞ ❝❧✐❡♥ts ♣❡r❢♦r♠ O(c + log s) ❘▼❘s ✐♥ ❈❈ ❛♥❞ ❉❙▼ ♠♦❞❡❧s ❡❛❝❤ ❛♥❞ O(c · (log c + log s)) ❘▼❘s ✐♥ ❈❈ ❛♥❞ ❉❙▼ ♠♦❞❡❧s ✐♥ t♦t❛❧✳
SLIDE 16 Pr✐♦r✐t② ◗✉❡✉❡✳ ❊①♣❡r✐♠❡♥ts
20 40 60 0.5 1 Number of Processes Size: 8 · 105 20 40 60 0.5 1 Number of Processes Size: 8 · 106 Throughput, mops/s PC Linden SL Lazy SL SkipQueue JavaLib FC Binary FC Pairing
SLIDE 17
❈♦♥❝❧✉s✐♦♥
◮ ■t ✐s ♣♦ss✐❜❧❡ t♦ ❜✉✐❧❞ ❡✣❝✐❡♥t ❝♦♥❝✉rr❡♥t ❞❛t❛ str✉❝t✉r❡s ❢r♦♠ t❤❡✐r ♣❛r❛❧❧❡❧ ❜❛t❝❤❡❞ ❝♦✉♥t❡r♣❛rt✳ ◮ ❲❡ ❛✣r♠ ✐t ❜② ❝♦♥s✐❞❡r✐♥❣ t✇♦ ❞❛t❛ str✉❝t✉r❡s✿ ❞②♥❛♠✐❝ ❣r❛♣❤ ❛♥❞ ♣r✐♦r✐t② q✉❡✉❡✳ ◮ ❲❤✐❝❤ ♦t❤❡r ❞❛t❛ str✉❝t✉r❡s t❤❛t ❝❛♥ ❜❡♥❡✜t ❢r♦♠ ♣❛r❛❧❧❡❧ ❝♦♠❜✐♥✐♥❣❄
◮ ❋♦r ❡①❛♠♣❧❡✱ ❞②♥❛♠✐❝ tr❡❡✳
SLIDE 18
❚❤❛♥❦ ②♦✉ ❢♦r ②♦✉r ❛tt❡♥t✐♦♥
◗✉❡st✐♦♥s❄
SLIDE 19
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
7 1 8 3 6
A = {2, 4, 6, 8} B = {}
SLIDE 20
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
7 1 8 3 6
A = {6, 8} B = {} A = {2, 4} B = {}
SLIDE 21
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
6 1 8 2 6
A = {8} B = {7} A = {4} B = {3}
SLIDE 22
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
6 1 8 2 6
A = {} B = {7} A = {4} B = {3} A = {8} B = {}
SLIDE 23
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
6 1 3 2 6 7
A = {4} B = {8}
8
SLIDE 24
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
6 1 3 2 6 7
A = {4} B = {}
8
A = {} B = {8}
SLIDE 25
P❛r❛❧❧❡❧ ❇❛t❝❤❡❞ ❇✐♥❛r② ❍❡❛♣✳ ■♥s❡rt
6 1 3 2 6 7 4 8 8