Reactive multi-word synchronization for multiprocessors
Journal article, 2004

Shared memory multiprocessor systems typically provide a set of hardware primitives in order to support synchronization. Generally, they provide "single-word" read-modify-write hardware primitives such as compare-and-swap, load-linked/store-conditional and fetch-and-op, from which the higher-level synchronization operations are then implemented in software. Although the "single-word" hardware primitives are conceptually powerful enough to support higher-level synchronization, from the programmer's point of view they are not as useful as their generalizations to the "multi-word" objects. This paper presents two fast and reactive lock-free "multi-word" compare-and-swap algorithms. The algorithms dynamically measure the level of contention as well as the memory conflicts of the "multi-word" compare-and-swap operations, and in response, they react accordingly in order to guarantee good performance in a wide range of system conditions. The algorithms are non-blocking (lock-free), allowing in this way fast dynamical behavior. Experiments on thirty processors of an SGI Origin2000 multiprocessor show that both our algorithms react quickly according to the contention variations and outperform the best known alternatives in almost all contention conditions.

practical

non-blocking

reactive synchronization

online algorithms

lock-free

Author

Phuong Ha

Chalmers, Department of Computing Science, Distributed Computing and Systems

Philippas Tsigas

Chalmers, Department of Computing Science, Distributed Computing and Systems

The Journal of Instruction-Level Parallelism

Vol. 6 Special issue

Subject Categories

Computer and Information Science

More information

Created

10/6/2017