recap pregel
play

Recap: Pregel Superstep 0 3 6 2 1 Superstep 1 6 6 2 6 - PowerPoint PPT Presentation

Asynchronous Graph Processing CompSci 590.03 Instructor: Ashwin Machanavajjhala (slides adapted from Graphlab talks at UAI10 & VLDB 12 and


  1. Asynchronous ¡Graph ¡Processing ¡ CompSci ¡590.03 ¡ Instructor: ¡Ashwin ¡Machanavajjhala ¡ ¡ (slides ¡adapted ¡from ¡Graphlab ¡talks ¡at ¡UAI’10 ¡& ¡VLDB ¡’12 ¡ ¡ ¡ and ¡Gouzhang ¡Wang’s ¡talk ¡at ¡CIDR ¡2013) ¡ Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 1 ¡

  2. Recap: ¡Pregel ¡ Superstep 0 3 6 2 1 Superstep 1 6 6 2 6 Superstep 2 6 6 6 6 Superstep 3 6 6 6 6 Figure 2: Maximum Value Example. Dotted lines are messages. Shaded vertices have voted to halt. Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 2 ¡

  3. Graph ¡Processing ¡ Dependency ¡ Local ¡ IteraBve ¡ Graph ¡ Updates ¡ ComputaBon ¡ My Interests Friends Interests Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 3 ¡

  4. This ¡Class ¡ • Asynchronous ¡Graph ¡Processing ¡ Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 4 ¡

  5. Example: ¡Belief ¡PropagaBon ¡ • Y Y p ( x 1 , x 2 , · · · , x n ) / φ u ( x u ) · φ u,v ( x u , x v ) u ∈ V ( u,v ) ∈ E • Want ¡to ¡compute ¡marginal ¡distribuBon ¡at ¡each ¡node. ¡ ¡ – Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 5 ¡

  6. Belief ¡PropagaBon ¡ • • Belief ¡at ¡a ¡vertex ¡depends ¡on ¡messages ¡received ¡from ¡ • neighboring ¡verBces ¡ f of each 𝑤 𝑤 𝑛 �→� ¡(𝑦 � ) 𝑛 �→� ¡(𝑦 � ) 𝑐 � 𝑦 � ∝ ϕ � (𝑦 � ) � 𝑛 �→� (𝑦 � ) ( 𝑐 � 𝑦 � ∝ ϕ � (𝑦 � ) � 𝑛 �→� (𝑦 � ) 1) � �,� ∈� � �,� ∈� 𝑣 𝑣 Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 6 ¡

  7. Belief ¡PropagaBon ¡ • • • Belief ¡at ¡a ¡vertex ¡depends ¡on ¡messages ¡received ¡from ¡ • ng to neighboring ¡verBces ¡ 𝑤 f of each 𝑤 𝑤 𝑛 �→� ¡(𝑦 � ) 𝑛 �→� ¡(𝑦 � ) 𝑐 � 𝑦 � ∝ 𝜚 � (𝑦 � ) � 𝑛 �→� (𝑦 � ) 𝑛 �→� ¡(𝑦 � ) 𝑐 � 𝑦 � ∝ ϕ � (𝑦 � ) � 𝑛 �→� (𝑦 � ) ( � �,� ∈� 𝑐 � 𝑦 � ∝ 𝜚 � (𝑦 � ) � 𝑛 �→� (𝑦 � ) 1) � �,� ∈� 𝑣 � �,� ∈� 𝑣 𝑐 � (𝑦 � ) 𝑛 �→� (𝑦 � ) ∝ � 𝜚 �,� (𝑦 � , 𝑦 � ) ∙ 𝑣 𝑛 �→� (𝑦 � ) (2) � � ∈� 𝑐 � (𝑦 � ) 𝑛 �→� (𝑦 � ) ∝ � 𝜚 �,� (𝑦 � , 𝑦 � ) ∙ (2) 𝑛 �→� (𝑦 � ) � � ∈� Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 7 ¡

  8. Original ¡BP ¡Algorithm ¡ A B C F D E G H I 16 Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 8 ¡

  9. Original ¡BP ¡Algorithm ¡can ¡be ¡inefficient ¡ ¡ • Spends ¡Bme ¡updaBng ¡nodes ¡which ¡have ¡already ¡converged ¡ Challenge ¡= ¡Boundaries ¡ Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 9 ¡

  10. Residual ¡BP ¡ImplementaBon ¡ A B C F D E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 10 ¡

  11. Residual ¡BP ¡ImplementaBon ¡ A B C F D E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 11 ¡

  12. Residual ¡BP ¡ImplementaBon ¡ A B C F D E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 12 ¡

  13. Residual ¡BP ¡ImplementaBon ¡ Ordering ¡based ¡on ¡residual ¡(max ¡change ¡in ¡message ¡value) ¡ C A B B D F D E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 13 ¡

  14. Residual ¡BP ¡ImplementaBon ¡ C A B D F D E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 14 ¡

  15. Residual ¡BP ¡ImplementaBon ¡ B A B A B C B F D C B D E F D E G E Scheduler G H I Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 15 ¡

  16. Residual ¡BP ¡converges ¡faster ¡ [Elidan ¡et ¡al ¡UAI ¡2006] ¡ 1 % of runs converged 0.8 0.6 0.4 0.2 AGBP AGBP RGBP RGBP 0 0 300 500 700 900 time in seconds Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 16 ¡

  17. Summary ¡ • Asynchronous ¡serial ¡graph ¡algorithms ¡can ¡converge ¡faster ¡than ¡ synchronous ¡parallel ¡graph ¡algorithms ¡ ¡ • Is ¡there ¡a ¡way ¡to ¡ correctly ¡ transform ¡asynchronous ¡serial ¡ algorithms ¡to ¡run ¡in ¡a ¡parallel ¡seYng? ¡ Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 17 ¡

  18. GRAPHLAB ¡ Lecture ¡15 ¡: ¡590.02 ¡Spring ¡13 ¡ 18 ¡

  19. GraphLab ¡ Data ¡Graph ¡ Shared ¡Data ¡Table ¡ Update ¡FuncBons ¡and ¡Scopes ¡ Scheduling ¡ 19 ¡

  20. Data ¡Graph ¡ A ¡ Graph ¡ with ¡data ¡associated ¡with ¡every ¡vertex ¡and ¡edge. ¡ X 1 ¡ X 2 ¡ X 3 ¡ X 4 ¡ x 3 : ¡current ¡belief ¡ X 5 ¡ X 7 ¡ X 6 ¡ Φ(X 6 ,X 9 ): ¡Binary ¡potenBal ¡ X 11 ¡ X 8 ¡ X 9 ¡ X 10 ¡ ¡ :Data ¡ 20 ¡

  21. Update ¡FuncBons ¡ Update ¡Func=ons ¡are ¡operaBons ¡which ¡are ¡applied ¡on ¡a ¡vertex ¡and ¡transform ¡the ¡data ¡in ¡ the ¡ scope ¡ of ¡the ¡vertex ¡ BP ¡Update : ¡ ¡-­‑ ¡Read ¡messages ¡on ¡adjacent ¡ ¡ ¡ ¡ ¡edges ¡ ¡-­‑ ¡Read ¡edge ¡potenBals ¡ ¡-­‑ ¡Compute ¡a ¡new ¡belief ¡for ¡ ¡ ¡ ¡ ¡the ¡current ¡vertex ¡ ¡ ¡-­‑ ¡Write ¡new ¡messages ¡on ¡edges ¡ 21 ¡

  22. Update ¡FuncBon ¡Schedule ¡ a b c d CPU 1 a h e f g a i i k h j b CPU 2 d 22 ¡

  23. Update ¡FuncBon ¡Schedule ¡ a b c d CPU 1 e f g a i i k h j b CPU 2 d 23 ¡

  24. StaBc ¡Schedule ¡ Scheduler ¡determines ¡the ¡ ¡ order ¡of ¡ Update FuncBon ¡EvaluaBons ¡ ¡ Synchronous ¡Schedule: ¡ ¡ ¡ ¡ Every ¡vertex ¡updated ¡simultaneously ¡ Round ¡Robin ¡Schedule: ¡ ¡ ¡ Every ¡vertex ¡updated ¡sequenBally ¡ 24 ¡

  25. Need ¡for ¡Dynamic ¡Scheduling ¡ Converged ¡ Slowly ¡Converging ¡ Focus ¡Effort ¡ 25 ¡

  26. Dynamic ¡Schedule ¡ a b b c d CPU 1 a h e f g a b i i k h j CPU 2 26 ¡

  27. Dynamic ¡Schedule ¡ Update ¡FuncBons ¡can ¡insert ¡new ¡tasks ¡into ¡the ¡schedule ¡ ¡ Wildfire ¡BP ¡ [SelvaBci ¡et ¡al.] ¡ FIFO ¡Queue ¡ Residual ¡BP ¡ [Elidan ¡et ¡al.] ¡ Priority ¡Queue ¡ ¡ Splash ¡BP ¡ [Gonzalez ¡et ¡al.] ¡ Splash ¡Schedule ¡ 27 ¡

  28. Global ¡InformaBon ¡ What ¡if ¡we ¡need ¡global ¡informaBon? ¡ Algorithm ¡Parameters? ¡ Sufficient ¡StaBsBcs? ¡ Sum ¡of ¡all ¡the ¡verBces? ¡ 28 ¡

  29. Shared ¡Data ¡Table ¡(SDT) ¡ • Global ¡constant ¡parameters ¡ Constant: Temperature Constant : Total # Samples 29 ¡

  30. Sync ¡OperaBon ¡ • Sync ¡is ¡a ¡fold/reduce ¡operaBon ¡over ¡the ¡graph ¡ Accumulate ¡ performs ¡an ¡aggregaBon ¡over ¡verBces ¡ � Apply ¡makes ¡a ¡final ¡modificaBon ¡to ¡the ¡accumulated ¡data ¡ � Example: ¡ Compute ¡the ¡average ¡of ¡all ¡the ¡verBces ¡ � Sync! ¡ 0 5 3 1 2 Add ¡ Accumulate ¡FuncBon: ¡ Apply ¡FuncBon: ¡ Divide ¡by ¡|V| ¡ 1 3 2 22 2 9 1 1 1 2 30 ¡

  31. Shared ¡Data ¡Table ¡(SDT) ¡ • Global ¡constant ¡parameters ¡ • Global ¡computaBon ¡( Sync ¡Opera=on ) ¡ Constant: Sync : Loglikelihood Temperature Constant : Sync : Sample Statistics Total # Samples 31 ¡

  32. Safety ¡ and ¡ Consistency ¡ 32 ¡

  33. Write-­‑Write ¡Race ¡ Write-­‑Write ¡Race ¡ ¡ If ¡adjacent ¡update ¡funcBons ¡write ¡simultaneously ¡ Lek ¡update ¡writes: ¡ Right ¡update ¡writes: ¡ Final ¡Value ¡ 33 ¡

  34. Race ¡CondiBons ¡+ ¡Deadlocks ¡ • Just ¡one ¡of ¡the ¡many ¡possible ¡races ¡ • Race-­‑free ¡code ¡ is ¡extremely ¡difficult ¡ to ¡write ¡ ¡ GraphLab ¡design ¡ensures ¡ ¡ race-­‑free ¡operaBon ¡ 34 ¡

  35. Scope ¡Rules ¡ Guaranteed ¡safety ¡for ¡all ¡update ¡funcBons ¡ 35 ¡

  36. Full ¡Consistency ¡ Only ¡allow ¡update ¡funcBons ¡two ¡verBces ¡apart ¡to ¡be ¡run ¡in ¡parallel ¡ Reduced ¡opportuniBes ¡for ¡parallelism ¡ 36 ¡

  37. Obtaining ¡More ¡Parallelism ¡ Not ¡all ¡update ¡funcBons ¡will ¡modify ¡the ¡enBre ¡scope! ¡ Belief ¡Propaga=on : ¡Only ¡uses ¡edge ¡data ¡ Gibbs ¡Sampling : ¡Only ¡needs ¡to ¡read ¡adjacent ¡verBces ¡ ¡ 37 ¡

  38. Edge ¡Consistency ¡ 38 ¡

Recommend


More recommend