Concurrency Freaks
concurrencyfreaks.blogspot.com
A web site dedicated to Concurrent algorithms and patterns.
- Posts
- 260 from 10 Jan 2013 to 21 Jan 2025
- Posting
- now and then
- Kind
- personal blog
- Feed
- http://concurrencyfreaks.blogspot.com/feeds/posts/default
2025 2
2023 3
2021 2
2020 4
2019 17
- CX - Wait-Free Universal Construction
- Is Left-Right a generic concurrency control?
- How about RLU? Is RLU a generic concurrency control?
- Is RCU a generic concurrency control?
- Hydra 2019 talks are now online
- Why use a PTM in your application?
- What is a concurrent algorithm without order?
- Recovery on a hand-made durable data structure versus recovery on a Persistent Transactional Memory
- Atomic Durability - How do databases recover from a crash ?
- Leaks in Persistent Memory
- Can I use a volatile allocator in Persistent Memory?
- Hydra Conference
- OneFile and wait-free memory reclamation
- OneFile is also a database engine
- OneFile and wait-free balanced trees
- OneFile and Tail Latency
- OneFile - The world's first wait-free Software Transactional Memory
2018 5
2017 23
- Software Transactional Memory is Simple
- Maged Michael on Non-Blocking Synchronization and Memory Management
- Is Parallel Programming still hard?
- Dawn of the Universal Constructs
- Why is memory reclamation so important?
- Lock-Free Memory Reclamation by Erez Petrank
- What do blockchains and wait-free universal constructs have in common?
- URCUs with Maged-Harris Lock-Free Linked Lists
- What is Eventual Consistency ?
- Left-Right and C-RW-WP with Flat Combining
- Good ideas may be hard to recognize, but they re-surface many times
- Hazard Eras source code
- Battle of the Userspace RCUs: GraceVersion and TwoPhase versus BulletProof and Memory Barrier
- Hazard Eras - Non-Blocking Memory Reclamation
- 2-thread algorithms
- MultiList - A MPSC Wait-Free Queue
- BitNext - A Lock-Free queue
- Two posters at PPoPP 2016
- Cliff Click - A JVM Does That ???
- Nitsan Wakart on Lock-Free Queues
- DoubleLink - A Low-Overhead Lock-Free Queue
- LCRQ in C++ with Hazard Pointers
- Sim Queue in Java (part 2/2)
2016 31
- Sim Queue in Java (part 1/2)
- A C++ implementation of Kogan-Petrank wait-free queue with memory reclamation
- Two-Phase Grace Sharing Userspace RCU
- LCRQ and FAAArrayQueue are not good for all scenarios
- FAAArrayQueue - MPMC lock-free queue (part 4 of 4)
- LazyIndexArrayQueue - MPMC lock-free queue (part 3 of 4)
- Log2ArrayQueue - MPMC lock-free queue (part 2 of 4)
- LinearArrayQueue - MPMC lock-free queue (part 1 of 4)
- The Encapsulator Queue (part 3)
- The Encapsulator Queue (part 2)
- The Encapsulator Queue - A wait-free/lock-free queue for GC languages
- Are Hazard Pointers Lock-Free or Wait-Free ?
- CRTurn Queue - The first MPMC memory-unbounded wait-free queue with memory reclamation
- Dope! I should have thought of that!
- Self-linking and Latency + Life of a Twitter jvm engineer
- Wait-free Bounded vs Wait-free Unbounded
- URCU ReadersVersion in C++
- A simple Userspace RCU in Java
- What Happens When 4096 Cores All Do synchronize_rcu_expedited()?
- RCU Theory and Practice
- Hazard Pointers vs RCU
- Userspace RCU in GlusterD
- Concurrency talks at CppCon 2016
- Throughput vs Latency and Lock-Free vs Wait-Free
- Cliff Click on VM Design Choices
- The Dangers of Optimistic Concurrency
- Angelika Langer at GOTO 2014
- John Cairns Presents - Smashing Atomics
- Martin Kleppmann on “Sequential Consistency versus Linearizability”
- Michael Wong - The Landscape of Parallelism
- Understanding Concurrency - a whiteboard session with Nuri Halprin
2015 28
- The importance of Sequential Consistency
- Interviews for Channel9
- Left-Right Brief Announcement
- A good resource for programming with atomics
- Atomics and the Memory Model in C++1x
- Implementing a Reader-Writer Lock using RCU
- Talk at CppCon 2015
- Poor Man's URCU
- Fast lookups with memory_order_consume
- CppCon 2015 program
- Maurice Herlihy on Transactional Memory
- An example of atomic_thread_fence()
- Lamport's One bit solution in C11
- The Triple-Blocking problem in Actor Models
- The quest for the perfect load/store lock (part 2)
- The quest for the perfect load/store lock (part 1)
- Tidex white paper
- Left-Right and the (broken) peer-review system
- Presentation on Scalable Concurrent Data Structures
- Presentation on RCU
- Maurice Herlihy keynote at ICALP 2014
- Scalable Reader-Writer Lock in C++1x
- Resettable Linearizable Monotonic Statistical Counter
- Benchmarks for Ticket Lock AWN in C11
- Ticket Lock AWN - Spins on Both variant
- Ticket Lock AWN - Negative Egress variant
- Ticket Lock AWN - Ends on Egress variant
- Ticket Lock - Array of Waiting Nodes (AWN)
2014 62
- Tidex Mutex - No Pthread_Self variant
- Tidex Mutex in C11
- Tidex Mutex
- Left-Right Distributed Counters No Version variant
- Left-Right Atomic Long No Version variant
- Relaxed atomics on array of counters
- Scott Meyers at NDC Oslo 2014
- WriterReaderPhaser: What's (not) new about it?
- Martin Thompson - Responding in a Timely Manner
- Coroutines with await 2.0
- Left-Right GT variant
- A Catalog of Read Indicators
- Linked Lists: Locking, Lock-Free, and Beyond
- Harris with RTTI and AtomicMarkableReference
- Relaxed atomics, out-of-thin-air results, and ConcurrentLinkedQueueRelaxed
- Improved ConcurrentLinkedQueue for PowerPC (and ARM?)
- Doug Lea at SPLASH on Parallel Programming
- Relaxed Atomics Linked List on PowerPC
- How Ubisoft develops games for Multicore at CppCon
- The line between Research and Engineering
- Tony Van Eerd on "Lock-Free by Example"
- Concurrency Track of Eurosys 2014
- Linked Lists with wait-free reads in C++ (LRLinkedList and LRLinkedListSingle)
- The two sides of Wait-Free Population Oblivious
- Slides from CPPCON 2014
- Left-Right Memory usage
- Not all race conditions are bugs
- A Lock-Free Hash Table by Cliff Click
- Lock-Free Programming in C++1x by Tony Van Eerd
- Cliff Click on In-Memory Processing
- Purely Functional Data Structures
- How NOT to measure Latency
- C11 on Windows with gcc 4.9.1
- Lock-Free is not Starvation-Free
- Lock-Free definitions galore
- Martin Thompson on Top-10 performance myths
- CLLElectedUnlink - A Lock-Free List with Relaxed Atomics (part 2)
- CLLElectedUnlink - A Lock-Free List with Relaxed Atomics (part 1)
- Elected Pattern
- A Rosetta Stone for Atomics
- CLH Reader-Writer Lock
- Minimum number of barriers for a Lock
- CLH Mutex - An alternative to the MCS Lock
- Relaxed Atomics optimizations for the Ticket Lock
- C11 Atomics and MPSC Mutual Exclusion Lock
- Multi-Producer-Single-Consumer Queue
- Native Code Performance on Modern CPUs
- Arrays vs Linked Lists
- On std::atomic_compare_exchange_*
- Dave Dice on Pseudo Random Number Generators
- Hans Boehm on the C++11 Memory Model
- Harris with AtomicMarkableReference - remove
- C11 and GCC 4.9.0
- Harris with AtomicMarkableReference - add
- Harris's Linked List
- Left-Right: Reader's Version variant
- Concurrency Control Algorithms
- A dissertation on the progress conditions of LongAdder
- Left-Right: No Version (revisited)
- Thoughts on Double Instance Locking
- An interview with Maurice Herlihy
- Lambdas and the Left-Right technique
2013 83
- Martin Thompson on Lock-Free algorithms
- Left-Right: No Version variant
- Left-Right: State Machine
- Left-Right: Classical algorithm
- The Rise and Fall of x86
- IA Memory Ordering
- Concurrency vs Parallelism
- Left-Right: A Concurrency Control Technique with Wait-Free Population Oblivious Reads
- Understanding Java GC and what you can do about it
- StampedLock.tryOptimisticRead() and Invariants
- Double Instance Locking
- Tilera - Not all processors are x86
- Compiler Confidential - GoingNative2013
- Concurrency - The Good, the Bad, and the Ugly
- Concurrent Hash Table with Relativistic Programming
- Relativistic Programming
- Hans Boehm on Reader-Writer Locks
- 20 minutes with Martin Thompson
- 20 minutes on Java's Fork/Join
- Immutable data structures are not as good as you think they are
- Wait-Free is not enough
- Even more on Counters
- Concurrency Freaks Library 0.5
- Scalable RW Lock with a single LongAdder
- Clojure and Persistent Data Structures
- Combining the StampedLock and LongAdder to make a new RW-Lock
- LongAdder is not Sequentially Consistent
- LongAdder and DCLC
- Myth Busting presentation by Martin Thompson
- Using Java in Low-Latency environments
- Taleb's Principle and the Weirdo Principle
- Distributed Cache-Line Counter Scalable RW-Lock
- More on Counters
- Concurrency Pattern: Distributed Cache-Line Counter
- Concurrency Pattern: Off-by-X Counter
- Why does the code in java.util.concurrent look so different than that in an academic paper
- 11 practices for peer-review
- Concurrency is not Parallelism... Concurrency enables Parallelism
- Interrupt handler in C11 with Atomics
- Native Code Performance and Memory
- ScalableStampedRWLock on 32-core opteron
- The Future of the JVM
- Concurrency Freaks Library 0.4
- Why mobile web apps are slow
- Concurrency Pattern: Object Update (part 2)
- Concurrency Pattern: Object Update (part 1)
- Relaxed Atomics in Java
- Queues just aren't scalable
- How to micro-benchmark concurrent data structures?
- Lock-Free and Wait-Free, definition and examples
- Java - The Good the Bad and the Ugly
- Concurrency is Rocket Science
- NUMA-Aware reader-writer locks
- Performance plots of the Scalable-Stamped-Read-Write-Lock
- Java and Lambdas
- Bjarne Stroustrup on C++ Style at "Going Native"
- Optimizing exclusiveLock() in ScalableRWLock
- ScalableReentrantRWLock Performance Plots
- Video of a chat with Martin Thompson
- The End of multi-core Scalability is near
- Why is Wait-Free so important?
- False sharing and Cache Coherence
- Lock-Free isn't what it's cracked up to be
- ConcurrencyFreaks Library Release 0.2
- Scalable RW-Locks in ARMv7
- Optimizing Reentrant calls 2
- What's the minimum number of steps to do a read-only lock?
- The problem of not having a Garbage Collector
- Optimizing Reentrant calls
- Scalable RW-Lock without limitation on the number of threads
- The new memory model in C11 (and C++11)
- Why is the ScalableRWLock fast?
- Source code available at SourceForge
- Flowcharts for the 2-states Scalable RW-Lock
- Blocking, Lock-Free, and Wait-Free
- A Scalable RW-Lock with 2-state Readers
- Scalable RW Lock without thread-local-storage
- Async and Await in C#
- CPU Cache and its effects on concurrent algorithms
- Scalable and fast read write locks
- Why concurrency and object oriented
- Concurrency in C++11
- If you want to learn more about