using lo using lock ser k server ers t s to sc scale ale
play

Using Lo Using Lock Ser k Server ers t s to Sc Scale ale Re - PowerPoint PPT Presentation

Using Lo Using Lock Ser k Server ers t s to Sc Scale ale Re Real- -Time Locking Pro rotocols: Chasing Ever-Increasing Core Counts C ATHERINE E. N EMITZ , T ANYA A MERT ,


  1. Using ¡Lo Using ¡Lock ¡Ser k ¡Server ers ¡t s ¡to ¡Sc ¡Scale ¡ ale ¡ Re Real-­‑ -­‑Time ¡ ¡Locking ¡ ¡Pro rotocols: ¡ ¡ Chasing ¡Ever-­‑Increasing ¡Core ¡Counts C ATHERINE ¡E. ¡N EMITZ , ¡T ANYA ¡A MERT , ¡J AMES ¡H. ¡A NDERSON

  2. ContenIon-­‑SensiIve ¡Access C 8 ¡= ¡2 ¡ 8 ¡ C 6 ¡= ¡5 ¡ 7 ¡ 6 ¡ 6 ¡ ? ¡ 5 ¡ 5 ¡ ? ¡ 4 ¡ blocking ¡ 4 ¡ C 8 ¡= ¡1 ¡ 8 ¡ 3 ¡ overhead ¡ 3 ¡ 2 ¡ 8 ¡ 2 ¡ &me ¡ 8 ¡ 1 ¡ 7 ¡ 1 ¡ A ¡ B ¡ A ¡ B ¡ 2 ¡

  3. Using ¡Lo Using ¡Lock ¡Ser k ¡Server ers ¡t s ¡to ¡Sc ¡Scale ¡ ale ¡ Re Real-­‑ -­‑Time ¡ ¡Locking ¡ ¡Pro rotocols: ¡ ¡ Chasing ¡Ever-­‑Increasing ¡Core ¡Counts 3 ¡

  4. Challenge: ¡Blocking ¡Chains # ¡of ¡processors: ¡ m=4 ¡ Processing ¡capacity ¡lost: ¡ ¡ 75% ¡ A ¡ B ¡ C ¡ D ¡ E ¡ 4 ¡

  5. Challenge: ¡Blocking ¡Chains # ¡of ¡processors: ¡ m=4 ¡ Processing ¡capacity ¡lost: ¡ ¡ 75% ¡ A ¡ B ¡ C ¡ D ¡ E ¡ 4 ¡

  6. Challenge: ¡Blocking ¡Chains # ¡of ¡processors: ¡ m=32 ¡ Processing ¡capacity ¡lost: ¡ ¡ 97% ¡ A ¡ B ¡ C ¡ D ¡ . ¡. ¡. ¡ 5 ¡

  7. Challenge: ¡Blocking ¡Chains # ¡of ¡processors: ¡ m=32 ¡ Processing ¡capacity ¡lost: ¡ ¡ 97% ¡ . ¡. ¡. ¡ A ¡ B ¡ C ¡ D ¡ . ¡. ¡. ¡ 5 ¡

  8. Cost ¡of ¡low ¡blocking: ¡high ¡overhead C-­‑RNLP: ¡ C. ¡JarreS, ¡B. ¡Ward, ¡and ¡J. ¡Anderson. ¡A ¡conten&on-­‑sensi&ve ¡fine-­‑grained ¡locking ¡protocol ¡for ¡ mul&processor ¡real-­‑&me ¡systems. ¡ RTNS ¡2015 . ¡ J. ¡Mellor-­‑Crummey ¡and ¡M. ¡ScoS. ¡Algorithms ¡for ¡scalable ¡synchroniza&on ¡of ¡shared-­‑memory ¡ MCS: ¡ mul&processors. ¡ Transac/ons ¡on ¡Computer ¡Systems , ¡9(1), ¡1991. ¡ ¡ 6 ¡

  9. Pr Propo posed ¡So sed ¡SoluIo luIon: ¡Lo n: ¡Lock ¡Ser k ¡Server ers s 7 ¡

  10. Four ¡lock ¡server ¡paradigms • ImplementaIon • EvaluaIon Lock ¡server ¡coordinaIon ¡protocol Con Contri ribuIon ons s 8 ¡

  11. PlaQorm ¡DescripIon Socket ¡1 ¡ Socket ¡2 ¡ dual-­‑socket, ¡ ¡ 18-­‑cores-­‑per-­‑socket ¡ ¡ Intel ¡Xeon ¡E5-­‑2699 ¡ Cores ¡0-­‑17 ¡ Cores ¡18-­‑36 ¡ L1 ¡Data ¡ L1 ¡Instr. ¡ L1 ¡Data ¡ L1 ¡Instr. ¡ L2 ¡(shared ¡between ¡two ¡cores) ¡ ¡ L2 ¡(shared ¡between ¡two ¡cores) ¡ ¡ L3 ¡(shared ¡on ¡socket) ¡ L3 ¡(shared ¡on ¡socket) ¡ 9 ¡

  12. PlaQorm ¡DescripIon Socket ¡1 ¡ Socket ¡2 ¡ Cores ¡0-­‑17 ¡ Cores ¡18-­‑36 ¡ Core ¡18 ¡ L1 ¡Data ¡ L1 ¡Instr. ¡ L1 ¡Data ¡ L1 ¡Instr. ¡ L2 ¡(shared ¡between ¡two ¡cores) ¡ ¡ L2 ¡(shared ¡between ¡two ¡cores) ¡ ¡ L3 ¡(shared ¡on ¡socket) ¡ L3 ¡(shared ¡on ¡socket) ¡ 9 ¡

  13. Standard ¡C-­‑RNLP Core ¡8 ¡ request ¡ lock ¡state ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ Socket ¡2 ¡ L3 ¡ L3 ¡ Socket ¡1 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 10 ¡

  14. Standard ¡C-­‑RNLP Core ¡8 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ Socket ¡2 ¡ L3 ¡ L3 ¡ Socket ¡1 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 10 ¡

  15. The ¡Idea ¡ Remote ¡Core ¡Locking ¡ ◦ used ¡to ¡reduce ¡cri&cal-­‑sec&on ¡lengths ¡[1] ¡ ¡ We ¡developed: ¡lock ¡servers ¡ ◦ used ¡to ¡reduce ¡overhead ¡ Lock ¡server: ¡a ¡process ¡dedicated ¡to ¡ performing ¡lock ¡and ¡unlock ¡func&ons ¡ [1] ¡J. ¡Lozi, ¡F. ¡David, ¡G. ¡Thomas, ¡J. ¡Lawall, ¡and ¡G. ¡Muller. ¡Remote ¡core ¡locking: ¡migra&ng ¡cri&cal-­‑ sec&on ¡execu&on ¡to ¡improve ¡the ¡performance ¡of ¡mul&threaded ¡applica&ons. ¡ USENIX ¡ATC ¡2012 . ¡ 11 ¡

  16. Lock ¡Server ¡Paradigms locality ¡ Global ¡ Local ¡ #1 ¡ Sta2c ¡ mobility ¡ Floa2ng ¡ 12 ¡

  17. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ enqueue ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  18. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ enqueue ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  19. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ submit ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  20. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ submit ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  21. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ submit ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ dequeue ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  22. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ request ¡ Lock ¡Server ¡ submit ¡ enqueue ¡ cri&cal ¡sec&on ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ submit ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  23. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ Lock ¡Server ¡ enqueue ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ enqueue ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  24. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ Lock ¡Server ¡ enqueue ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ submit ¡ cri&cal ¡sec&on ¡ dequeue ¡ 13 ¡

  25. Paradigm ¡#1: ¡StaIc ¡Global Core ¡0 ¡ Core ¡8 ¡ Lock ¡Server ¡ enqueue ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ dequeue ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L3 ¡ L3 ¡ Core ¡35 ¡ L1 ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ . ¡. ¡. ¡ L1 ¡ request ¡ Disadvantage: ¡lose ¡a ¡core ¡ submit ¡ cri&cal ¡sec&on ¡ submit ¡ 13 ¡

  26. Lock ¡Server ¡Paradigms locality ¡ Global ¡ Local ¡ #1 ¡ Sta2c ¡ mobility ¡ #2 ¡ Floa2ng ¡ 14 ¡

  27. Lock ¡Server ¡Paradigms locality ¡ Global ¡ Local ¡ -­‑ ¡Lose ¡1 ¡core ¡ Sta2c ¡ + ¡L1 ¡cache ¡affinity ¡ mobility ¡ #2 ¡ Floa2ng ¡ 14 ¡

  28. Lock ¡Server ¡Paradigms locality ¡ Global ¡ Local ¡ -­‑ ¡Lose ¡1 ¡core ¡ Sta2c ¡ Key ¡insight: ¡blocked ¡requests ¡are ¡busy-­‑wai&ng, ¡using ¡CPU ¡ + ¡L1 ¡cache ¡affinity ¡ mobility ¡ #2 ¡ Floa2ng ¡ 14 ¡

Recommend


More recommend