Lock‐Free Concurrent Data Structures
Concurrent data structures are the data sharing side of parallel programming. An implementation of a data structure is called lock‐free, if it allows multiple processes/ threads to access the data structure concurrently and also guarantees that at least one operation among those finishes in a finite...
Saved in:
| Published in | Programming multi‐core and many‐core computing systems pp. 59 - 79 |
|---|---|
| Main Authors | , , , , , |
| Format | Book Chapter |
| Language | English |
| Published |
Hoboken, NJ, USA
John Wiley & Sons, Inc
24.01.2017
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 0470936908 9780470936900 |
| DOI | 10.1002/9781119332015.ch3 |
Cover
| Summary: | Concurrent data structures are the data sharing side of parallel programming. An implementation of a data structure is called lock‐free, if it allows multiple processes/ threads to access the data structure concurrently and also guarantees that at least one operation among those finishes in a finite number of its own steps regardless of the state of the other operations. This chapter provides a sufficient background and intuition to help the interested reader to navigate in the complex research area of lock‐free data structures. It offers the programmer familiarity to the subject that allows using truly concurrent methods. The chapter discusses the fundamental synchronization primitives on which efficient lock‐free data structures rely. It discusses the problem of managing dynamically allocated memory in lock‐free concurrent data structures and general concurrent environments. The idiosyncratic architectural features of graphics processors that is important to consider when designing efficient lock‐free concurrent data structures for this emerging area. |
|---|---|
| ISBN: | 0470936908 9780470936900 |
| DOI: | 10.1002/9781119332015.ch3 |