the adaptive priority queue with elimination and combining
play

The Adaptive Priority Queue with Elimination and Combining - PowerPoint PPT Presentation

The Adaptive Priority Queue with Elimination and Combining Irina Calciu, Hammurabi Mendes, Maurice Herlihy Brown University Scalability in the Multicore Age Our


  1. The ¡Adaptive ¡Priority ¡Queue ¡with ¡ Elimination ¡and ¡Combining Irina ¡Calciu, ¡Hammurabi ¡Mendes, ¡Maurice ¡Herlihy Brown ¡University

  2. Scalability ¡in ¡the ¡Multicore ¡Age • Our ¡machines ¡are ¡getting ¡ bigger, ¡with ¡more ¡cores • Scalability ¡is ¡far ¡from ¡ideal • Synchronization ¡is ¡ expensive • We ¡need ¡better ¡data ¡ structures ¡for ¡these ¡new ¡ architectures

  3. Priority ¡Queue • Abstract ¡data ¡structure • Stores ¡<key, ¡value> ¡pairs, ¡where ¡keys ¡are ¡priorities • Interface: ¡synchronous ¡add(x) ¡and ¡removeMin() • Implementation: ¡heap ¡or ¡skiplist • Usage: ¡e.g. ¡resource ¡management

  4. Lazy ¡and ¡LockfreeSkiplists(prior ¡work) ¡– Add() Head Tail (Dummy) (Dummy) [Lotan2000, ¡Sundell2003] ¡ Efficient ¡parallel ¡add ¡operations

  5. Lazy ¡and ¡LockfreeSkiplists(prior ¡work) ¡– RemoveMin() Head Tail (Dummy) (Dummy) [Lotan2000, ¡Sundell2003] ¡ Bottleneck: ¡contention ¡on ¡remove ¡operations

  6. Flat ¡Combining ¡(prior ¡work) Combiner Thread Thread Thread Thread OP ¡REQ EMPTY OP ¡REQ EMPTY OP ¡REQ EMPTY OP ¡REQ EMPTY [Hendler2010]

  7. Flat ¡Combining ¡(prior ¡work) ¡– RemoveMin() Head Tail (Dummy) (Dummy)

  8. Flat ¡Combining ¡(prior ¡work) ¡– RemoveMin() Head Tail (Dummy) (Dummy) Combiner

  9. Flat ¡Combining ¡(prior ¡work) ¡– RemoveMin() Head Tail (Dummy) (Dummy) Combiner

  10. Flat ¡Combining ¡(prior ¡work) ¡– Add() Head Tail (Dummy) (Dummy) Combiner Combiner Add ¡operations ¡are ¡sequential

  11. Flat ¡Combining ¡(prior ¡work) ¡– Add() Head Tail (Dummy) (Dummy)

  12. Goal ¡(1): ¡Combining ¡+ ¡Parallel ¡Adds Head Tail (Dummy) (Dummy) Combined ¡Operations Parallel ¡Adds

  13. Goal ¡(2): ¡Parallelize ¡Combined ¡Adds ¡Too Head Tail (Dummy) (Dummy) Combined ¡Removes Parallel ¡Adds Parallel ¡Adds ¡?

  14. Stack ¡and ¡Queue ¡Elimination ¡(prior ¡work) Data ¡Structure ¡ [Hendler2004, ¡Moir2005] (Stack ¡or ¡Queue) Elimination ¡Array REM EMPTY EMPTY ADD EMPTY EMPTY Add Add Rem

  15. Parallelize ¡Combined ¡Adds ¡Too: ¡Use ¡Elimination Head Tail (Dummy) (Dummy) Combined ¡Removes Parallel ¡Adds Parallel ¡Adds ¡?

  16. The ¡Priority ¡Queue ¡at ¡a ¡Glance • Elimination • RemoveMinand ¡small-­‑value ¡Add ¡combining • Large-­‑value ¡Add ¡parallelism

  17. Implementation: ¡Elimination Priority ¡Queue Head Tail (Dummy) (Dummy) Add(x) Elimination ¡Array x Remove() Min

  18. Implementation: ¡Elimination Priority ¡Queue Head Tail (Dummy) (Dummy) Add(x) Elimination ¡Array x, ¡stamp Remove() Min

  19. Implementation: ¡Combining Priority ¡Queue Head Tail (Dummy) (Dummy) Add(x) Elimination ¡Array rem, ¡0 x, ¡stamp y, ¡stamp Remove() server Min

  20. Transitions ¡of ¡a ¡Slot ¡in ¡the ¡Elimination ¡Array

  21. Transitions ¡of ¡a ¡Slot ¡in ¡the ¡Elimination ¡Array

  22. Transitions ¡of ¡a ¡Slot ¡in ¡the ¡Elimination ¡Array

  23. Transitions ¡of ¡a ¡Slot ¡in ¡the ¡Elimination ¡Array

  24. Implementation: ¡Parallel ¡Adds Add(x) Elimination ¡Array rem, ¡0 x, ¡stamp y, ¡stamp Remove() server Head Head Tail Tail (Dummy) (Dummy) (Dummy) (Dummy) Combined ¡Operations Parallel ¡Adds

  25. Adaptive ¡PQ ¡Split: ¡moveHead() Head Tail (Dummy) (Dummy) server Parallel ¡Adds

  26. Adaptive ¡PQ ¡Split: ¡moveHead() Head Tail (Dummy) (Dummy) server Parallel ¡Adds

  27. Adaptive ¡PQ ¡Split: ¡chopHead() Head Tail (Dummy) (Dummy) server Parallel ¡Adds

  28. Adaptive ¡PQ ¡Split: ¡chopHead() Head Tail (Dummy) (Dummy) server Parallel ¡Adds

  29. Synchronization • MoveHead() ¡and ¡chopHead() ¡change ¡the ¡parallel ¡skiplist • We ¡need ¡to ¡synchronize ¡server ¡and ¡parallel ¡adds • Use ¡RW ¡Lock • Server: ¡acquire ¡writeLock for ¡moveHead() ¡and ¡chopHead() • Parallel ¡adds: ¡acquire ¡readLock

  30. Synchronization • Single ¡writer ¡lock • Writer ¡preference • Implementation: ¡based ¡on ¡timestamps • Server ¡increments ¡timestamp ¡for ¡moveHead() ¡and ¡chopHead() • Don’t ¡hold ¡the ¡lock ¡for ¡the ¡whole ¡time ¡of ¡the ¡parallel ¡add • Do ¡a ¡clean ¡find ¡first ¡(as ¡verified ¡by ¡the ¡timestamp) • Acquire ¡read ¡lock ¡and ¡finish ¡the ¡insertion

  31. Linearizability-­‑ Elimination

  32. Linearizability-­‑ Combining

  33. 50% ¡Add ¡Operations ¡50% ¡RemoveMinOperations 4000 3500 3000 Throughput 2500 pqe 2000 fcpairheap 1500 fcskiplist 1000 lazyskiplist 500 0 1 2 4 8 16 24 32 40 48 54 60 Threads 100% 80% 60% Parallel 40% Server Elimination 20% 0% Add ¡Operations RemoveMin ¡ Operations

  34. 80% ¡Add ¡Operations ¡20% ¡RemoveMinOperations (Ops/ms) 3000 2500 2000 Throughput pqe 1500 fcpairheap 1000 fcskiplist 500 lazyskiplist 0 1 2 4 8 16 24 32 40 48 54 60 Threads 100% 80% Parallel 60% Server 40% Elimination 20% 0% Add ¡Operations RemoveMin ¡Operations

  35. Impact ¡of ¡Maintaining ¡Two ¡Skiplists

  36. Hardware ¡Transactions ¡-­‑ Motivation • RW ¡Lock ¡can ¡be ¡too ¡expensive • Use ¡hardware ¡transactions ¡ • Intel ¡TSX • Speculative ¡execution

  37. Hardware ¡Transactions ¡(1) • Naïve ¡version • Start ¡a ¡transaction • Find ¡+ ¡Insert • End ¡transaction ¡ • Too ¡many ¡aborts

  38. Hardware ¡Transactions ¡(2) • Timestamp ¡approach • Server ¡increments ¡timestamp ¡for ¡moveHead() ¡and ¡chopHead() • Find ¡executes ¡non-­‑transactionallybut ¡has ¡to ¡be ¡restarted ¡if ¡ timestamp ¡changes • Insert ¡executed ¡in ¡a ¡transaction • Read ¡the ¡timestamp ¡in ¡the ¡transaction

  39. Using ¡Hardware ¡Transactions (Ops/ms)

  40. Using ¡Hardware ¡Transactions (Ops/ms)

  41. Transactions ¡Stats ¡for ¡50% ¡Add() ¡and ¡50% ¡RemoveMin()

  42. Summary • First ¡elimination ¡algorithm ¡for ¡a ¡priority ¡queue ¡ • Use ¡two ¡skiplist to ¡separate ¡small ¡adds ¡from ¡large ¡value ¡adds • Combining ¡+ ¡Parallel ¡Adds ¡+ ¡Elimination ¡ • HTM ¡simplified ¡the ¡algorithm ¡and ¡improved ¡performance ¡

  43. cs.brown.edu/~irina cs.brown.edu/~hmendes

  44. Transactions ¡Stats ¡for ¡3 ¡Working ¡Threads, ¡1 ¡Server ¡Thread

Recommend


More recommend