X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=readme.md;h=98dca249584c37f4e9433ff9353a0a36934c0b4e;hp=7c95da10ab83b4bb184d0a06dc75462c0b4bd834;hb=4797a60c31abac744145cd19daea0faec092855f;hpb=c7a53e157ddf4d4c56f5776703131a31d3ec0ff0 diff --git a/readme.md b/readme.md index 7c95da10..98dca249 100644 --- a/readme.md +++ b/readme.md @@ -25,41 +25,43 @@ Download the latest release from http://sourceforge.net/projects/libcds/files/ References ---------- *Stack* - - TreiberStack: [1986] R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, April 1986. + - *TreiberStack*: [1986] R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, April 1986. - Elimination back-off implementation is based on idea from [2004] Danny Hendler, Nir Shavit, Lena Yerushalmi "A Scalable Lock-free Stack Algorithm" + - *FCStack* - flat-combining wrapper for *std::stack* *Queue* - - BasketQueue: [2007] Moshe Hoffman, Ori Shalev, Nir Shavit "The Baskets Queue" - - MSQueue: + - *BasketQueue*: [2007] Moshe Hoffman, Ori Shalev, Nir Shavit "The Baskets Queue" + - *MSQueue*: * [1998] Maged Michael, Michael Scott "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms" * [2002] Maged M.Michael "Safe memory reclamation for dynamic lock-free objects using atomic reads and writes" * [2003] Maged M.Michael "Hazard Pointers: Safe memory reclamation for lock-free objects" - - RWQueue: [1998] Maged Michael, Michael Scott "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms" - - MoirQueue: [2000] Simon Doherty, Lindsay Groves, Victor Luchangco, Mark Moir "Formal Verification of a practical lock-free queue algorithm" - - OptimisticQueue: [2008] Edya Ladan-Mozes, Nir Shavit "An Optimistic Approach to Lock-Free FIFO Queues" - - SegmentedQueue: [2010] Afek, Korland, Yanovsky "Quasi-Linearizability: relaxed consistency for improved concurrency" - - TsigasCycleQueue: [2000] Philippas Tsigas, Yi Zhang "A Simple, Fast and Scalable Non-Blocking Concurrent FIFO Queue for Shared Memory Multiprocessor Systems" - - VyukovMPMCCycleQueue Dmitry Vyukov (see http://www.1024cores.net) + - *RWQueue*: [1998] Maged Michael, Michael Scott "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms" + - *MoirQueue*: [2000] Simon Doherty, Lindsay Groves, Victor Luchangco, Mark Moir "Formal Verification of a practical lock-free queue algorithm" + - *OptimisticQueue*: [2008] Edya Ladan-Mozes, Nir Shavit "An Optimistic Approach to Lock-Free FIFO Queues" + - *SegmentedQueue*: [2010] Afek, Korland, Yanovsky "Quasi-Linearizability: relaxed consistency for improved concurrency" + - *FCQueue* - flat-combining wrapper for *std::queue* + - *TsigasCycleQueue*: [2000] Philippas Tsigas, Yi Zhang "A Simple, Fast and Scalable Non-Blocking Concurrent FIFO Queue for Shared Memory Multiprocessor Systems" + - *VyukovMPMCCycleQueue* Dmitry Vyukov (see http://www.1024cores.net) *Deque* - - MichaelDeque: [2003] Maged Michael "CAS-based Lock-free Algorithm for Shared Deque" + - flat-combining deque based on *stl::deque* *Map, set* - - MichaelHashMap: [2002] Maged Michael "High performance dynamic lock-free hash tables and list-based sets" - - SplitOrderedList: [2003] Ori Shalev, Nir Shavit "Split-Ordered Lists - Lock-free Resizable Hash Tables" - - StripedMap, StripedSet: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" - - CuckooMap, CuckooSet: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" - - SkipListMap, SkipListSet: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" + - *MichaelHashMap*: [2002] Maged Michael "High performance dynamic lock-free hash tables and list-based sets" + - *SplitOrderedList*: [2003] Ori Shalev, Nir Shavit "Split-Ordered Lists - Lock-free Resizable Hash Tables" + - *StripedMap*, *StripedSet*: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" + - *CuckooMap*, *CuckooSet*: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" + - *SkipListMap*, *SkipListSet*: [2008] Maurice Herlihy, Nir Shavit "The Art of Multiprocessor Programming" *Ordered single-linked list* - - LazyList: [2005] Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, and Nir Shavit "A Lazy Concurrent List-Based Set Algorithm" - - MichaelList: [2002] Maged Michael "High performance dynamic lock-free hash tables and list-based sets" + - *LazyList*: [2005] Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, and Nir Shavit "A Lazy Concurrent List-Based Set Algorithm" + - *MichaelList*: [2002] Maged Michael "High performance dynamic lock-free hash tables and list-based sets" *Priority queue* - - MSPriorityQueue: [1996] G.Hunt, M.Michael, S. Parthasarathy, M.Scott "An efficient algorithm for concurrent priority queue heaps" + - *MSPriorityQueue*: [1996] G.Hunt, M.Michael, S. Parthasarathy, M.Scott "An efficient algorithm for concurrent priority queue heaps" *Tree* - - EllenBinTree: [2010] F.Ellen, P.Fatourou, E.Ruppert, F.van Breugel "Non-blocking Binary Search Tree" + - *EllenBinTree*: [2010] F.Ellen, P.Fatourou, E.Ruppert, F.van Breugel "Non-blocking Binary Search Tree" *SMR* - Hazard Pointers