black box concurrent data structures for numa
play

Black-box Concurrent Data Structures for NUMA Architectures Irina - PowerPoint PPT Presentation

Black-box Concurrent Data Structures for NUMA Architectures Irina Calciu (VRG) Siddhartha Sen (MSR) Mahesh Balakrishnan (Yale) Marcos K. Aguilera (VRG) Concurrent Data Structures (CDS) Used everywhere: kernel, libraries, applications Issues:


  1. Black-box Concurrent Data Structures for NUMA Architectures Irina Calciu (VRG) Siddhartha Sen (MSR) Mahesh Balakrishnan (Yale) Marcos K. Aguilera (VRG)

  2. Concurrent Data Structures (CDS) Used everywhere: kernel, libraries, applications Issues: Difficult to design and • implement Complex and rigid • Assume uniform memory • 2

  3. Non-Uniform Memory Access (NUMA) Cache Cache Cache Cache 3

  4. Goals • Design efficient NUMA-aware CDS • Black-box method: works for any data structure • Application level 4

  5. Transform sequential DS to NUMA-aware CDS e.g. insert(A), remove(B), lookup(C) op (e.g. “insert(X)”) App Sequential Thread 1 data structure resp (e.g. “OK”) App NUMA Node 1 Thread 1 App Thread 2 NUMA-aware op App NUMA Node 2 concurrent Thread 3 resp data structure App Thread 4 5

  6. API Sequential S.ExecuteSeq (op, args) -> Result data structure S NUMA-aware N.Execute (op, args) -> Result concurrent data structure N.IsReadOnly (op) -> Boolean N 6

  7. Our Method: Node Replication (NR) NU NUMA ¡ ¡No Node ¡ ¡1 NUMA ¡ NU ¡No Node ¡ ¡2 Local ¡Replica Local ¡Replica Synchronization between nodes Synchronization Synchronization within a node within a node Sequential data structure 7

  8. Synchronizing Replicas (Cross-node) NU NUMA ¡ ¡No Node ¡ ¡1 NUMA ¡ NU ¡No Node ¡ ¡2 Local ¡Replica Local ¡Replica Shared ¡Log Synchronization between nodes? 8

  9. Synchronizing Replicas (Cross-node) NUMA ¡ NU ¡No Node ¡ ¡1 NUMA ¡ NU ¡No Node ¡ ¡2 Local ¡Replica Local ¡Replica Shared ¡Log A A B C C B D E N remove ¡Z Local ¡Tail Local ¡Tail insert ¡A insert ¡B insert ¡C insert ¡D insert ¡E LogTail insert ¡N 9

  10. Synchronizing Each Replica (Intra-node) NU NUMA ¡ ¡No Node ¡ ¡1 NU NUMA ¡ ¡No Node ¡ ¡2 Local ¡Replica Local ¡Replica Shared ¡Log Consistency of replicas? Access to replica? Access to replica? Flat Combining Flat Combining 10

  11. Access to Replica NUMA ¡ NU ¡No Node Local ¡Replica Local ¡Tail Thread Thread Thread Thread Update ¡req Empty ¡ ¡ ¡ Read ¡req Empty ¡ ¡ ¡ Update ¡req Update ¡req Empty ¡ ¡ ¡ Empty ¡ ¡ ¡ Flat ¡Combining: ¡[Hendler et ¡al., ¡2010] 11

  12. Access to Replica NU NUMA ¡ ¡No Node Local ¡Replica Local ¡Tail R R Thread Thread Thread Thread Update ¡req Empty ¡ ¡ ¡ Read ¡req Empty ¡ ¡ ¡ Update ¡req Read ¡req Empty ¡ ¡ ¡ Empty ¡ ¡ ¡ Flat ¡Combining: ¡[Hendler et ¡al., ¡2010] 12

  13. Putting It All Together NU NUMA ¡ ¡No Node Local ¡Replica Shared ¡Log Local ¡Tail Thread Thread Thread Thread LogTail LogTail 13

  14. Algorithm Summary: Replication, Log, Combining NU NUMA ¡ ¡No Node ¡ ¡1 NU NUMA ¡ ¡No Node ¡ ¡2 Local ¡Replica Local ¡Replica Shared ¡Log Consistency of replicas? Access to replica? Access to replica? Flat Combining Flat Combining 14

  15. Server: 4 NUMA nodes 14 cores/node + hyperthreading (total 112 hardware threads) 15

  16. Skiplist Priority Queue – 10% Updates (RWL) Readers-Writer Lock X (NR) Node Replication (FC+) FC + RWL (SL) Spinlock (FC) Flat Combining (LF) Lock-free X 60 40 ops/us 20 0 1 28 56 84 110 # threads 16

  17. Using Replication in REDIS: 10% Updates (RWL) Readers-Writer Lock X (NR) Node Replication (FC+) FC + RWL (SL) Spinlock (FC) Flat Combining X 6 4 ops/us 2 0 1 28 56 84 110 # threads 17

  18. Rationale • Trade memory + computation for less communication • Compact representation of operations • Limited cross-node synchronization and contention • Enable parallelism • Combiners across nodes • Readers within a node • Readers and the combiner on the same node • Leverage batching and reordering 18

  19. Conclusion: NodeReplication Works Well • Black-box: works for any data structure • Good for small and medium size CDS • Beneficial for contended CDS 19

  20. Thank you! icalciu@vmware.com https://research.vmware.com/

Recommend


More recommend