ACM Home Page
Please provide us with feedback. Feedback
A simple, fast and scalable non-blocking concurrent FIFO queue for shared memory multiprocessor systems
Full text PdfPdf (343 KB)
Source ACM Symposium on Parallel Algorithms and Architectures archive
Proceedings of the thirteenth annual ACM symposium on Parallel algorithms and architectures table of contents
Crete Island, Greece
Pages: 134 - 143  
Year of Publication: 2001
ISBN:1-58113-409-6
Authors
Philippas Tsigas  Department of Computing Science, Chalmers University of Technology, SE-412 96 Göteborg, Sweden
Yi Zhang  Department of Computing Science, Chalmers University of Technology, SE-412 96 Göteborg, Sweden
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 77,   Citation Count: 7
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues   peer to peer  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/378580.378611
What is a DOI?

ABSTRACT

A non-blocking FIFO queue algorithm for multiprocessor shared memory systems is presented in this paper. The algorithm is very simple, fast and scales very well in both symmetric and non-symmetric multiprocessor shared memory systems. Experiments on a 64-node SUN Enterprise 10000 — a symmetric multiprocessorsystem — and on a 64-node SGI Origin 2000 — a cache coherent non uniform memory access multiprocessorsystem — indicate that our algorithm considerably outperforms the best of the known alternatives in both multiprocessors in any level of multiprogramming. This work introduces two new, simple algorithmic mechanisms. The first lowers the contention to key variables used by the concurrent enqueue and/or dequeue operations which consequently results in the good performance of the algorithm, the second deals with the pointer recycling problem, an inconsistency problem that all non-blocking algorithms based on the compare-and-swap synchronisation primitive have to address. In our construction we selected to use compare-and-swap since compare-and-swap is an atomic primitive that scales well under contention and either is supported by modern multiprocessors or can be implemented efficiently on them.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
D. Cortesi. Origin 2000 and onyx2 performance tuning and optimization guide. http://techpubs.sgi.com/library/, SGI Inc., 1998.
3
4
5
6
7
 
8
H. Massalin and C. Pu. A lock-free multiprocessor OS kernel. Technical Report CUCS-005-91, Columbia University, 1991.
9
 
10
 
11
 
12
13
 
14

CITED BY  7
 
 
 

Collaborative Colleagues:
Philippas Tsigas: colleagues
Yi Zhang: colleagues

Peer to Peer - Readers of this Article have also read: