31
- https://doi.org/10.5555/3241639.3241646
Using elimination and delegation to implement a scalable NUMA-friendly stack
- Jun 24, 2013
- Irina Calciu +2 more
Emerging cache-coherent non-uniform memory access (cc-NUMA) architectures provide cache coherence across hundreds of cores. These architectures change how applications perform: while local memory accesses can be fast, remote memory accesses suffer from high access times and increased interconnect contention. Because of these costs, performance of legacy code on NUMA systems is often worse than their uniform memory counterparts despite the potential for increased parallelism.We explore these effects on prior implementations of concurrent stacks and propose the first NUMA-friendly stack design that improves data locality and minimizes interconnect contention. We achieve this by using a dedicated server thread that performs all operations requested by the client threads. Data is kept in the cache local to the server thread thereby restricting cache-to-cache traffic to messages exchanged between the clients and the server. In addition, we match reciprocal operations (pushes and pops) by using the rendezvous elimination algorithm before sending requests to the server. This has the dual effect of avoiding unnecessary interconnect traffic and reducing the number of operations that change the data structure. The result of combining elimination and delegation is a scalable and highly parallel stack that outperforms all previous stack implementations on NUMA systems.
- # Interconnect
- # NUMA Systems
- # High Access Times
- # Local Memory Accesses
- # Improves Data Locality
- # Memory Accesses
- # Server Thread
- # Memory
- # Non-uniform Memory Access Architectures
- # Scalable