Reducing Core Idling in Concurrent Data Structures
Guardado en:
| Publicado en: | ProQuest Dissertations and Theses (2025) |
|---|---|
| Autor principal: | |
| Publicado: |
ProQuest Dissertations & Theses
|
| Materias: | |
| Acceso en línea: | Citation/Abstract Full Text - PDF |
| Etiquetas: |
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
| Resumen: | This dissertation examines the problem of reducing CPU core idling in concurrent data structures. This is achieved by addressing the two primary causes of such idling: blocking caused by concurrency control and cache misses. The document presents a survey of relevant concurrent programming techniques including spin locks, sequence locks, lock ordering, read-modify-write operations, hazard pointers, and transactional memory. The importance of reducing cache misses is emphasized by explaining the memory hierarchy, the C++ memory model, and cache coherency protocols. Tools for analyzing concurrent correctness are presented as well, including progress guarantees and linearizability. The dissertation presents three original research projects. The first is the skip vector, a novel high-performance concurrent data structure based on the skip list. By utilizing locality in both the index layer and data layer, the number of cache misses per operation is cut to a fraction of what a traditional skip list would incur. The use of sequence locks allows read-only operations to interleave, and the use of hazard pointers allows for strict memory reclamation. The second project consists of three original algorithms, superior to two-phase locking, for performing mutating bulk operations on a concurrent data structure. These three algorithms are generic and suitable for use with any concurrent data structure which can be divided into partitions. By varying the location and granularity of concurrency control metadata, the three algorithms specialize in different workloads. The final project is the skip hash, a novel high-performance data structure made by composing a skip list with a hash table. The skip list makes it possible to efficiently implement range operations. The hash table serves as an index into the skip list, achieving an asymptotic reduction in runtime from O(log n) to O(1) for most elemental operations. The skip hash avoids the use of complex concurrency control by relying on fast, modern software transactional memory. A fast-path/slow-path strategy prevents starvation of long-running range queries. Together, these projects demonstrate the effectiveness of designing high-performance concurrent data structures by utilizing techniques for reducing false waiting in conjunction with synergistic techniques for reducing cache misses. |
|---|---|
| ISBN: | 9798315735465 |
| Fuente: | ProQuest Dissertations & Theses Global |