MergeArray and scalable, relaxed, concurrent, mergeable priority queues
Author(s)Coulombe, Michael Joseph
Merge array and scalable, relaxed, concurrent, mergeable priority queues
MergeArray and scalable, concurrent, relaxed, mergeable priority queues
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
MetadataShow full item record
The priority queue is a well-studied data structure which has prospered in the ever-growing field of distributed computing. However, in the asynchronous shared-memory model, one operation was left behind: merge. I present the MergeArray, a framework for implementing scalable, relaxed, concurrent, and mergeable objects, which exploits disjoint access parallelism by using an array of sequential objects and performs merges lazily, index-by-index. I use MergeArray to build a linearizable and scalable priority queue with lock-free merge and insert and a relaxed, deadlock-free remove-min with expected worst-case rank-error of O(plogp) for p threads under common assumptions. I show experimental evidence that supports this rank-error estimate in practice as well as increased performance and scalability on a relaxed Minimum Spanning Tree benchmark compared to SprayList, a cutting-edge relaxed priority queue.
Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.Title as it appears in MIT Commencement Exercises program, June 5, 2015: MergeArray and scalable, concurrent, relaxed, mergeable priority queues. Cataloged from PDF version of thesis.Includes bibliographical references (pages 62-63).
DepartmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Massachusetts Institute of Technology
Electrical Engineering and Computer Science.