article

Concurrent operations on priority queues

Abstract

Among the fastest priority queue implementations, skew heaps have properties that make them particularly suited to concurrent manipulation of shared queues. A concurrent version of the top down implementation of skew heaps can be produced from previously published sequential versions using almost mechanical transformations. This implementation requires O(log n) time to enqueue or dequeue an item, but it allows new operations to begin after only O(1) time on a MIMD machine. Thus, there is potential for significant concurrency when multiple processes share a queue. Applications to problems in graph theory and simulation are discussed in this article.

References

  1. 1 Bayer, R. and Schkolnick, M. Concurrency of operations on B-trees. Acta Informatica 9, I (1977), 1-21.Google ScholarGoogle Scholar
  2. 2 BenAri, M. Principles of Concurrent Programming. Prentice Hall, Englewood Cliffs, N.J., 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Biswas, J. and Browne, J.C. Simultaneous update of priority structures. In Proceedings of the 1987 International Conference on Parallel Processing. S.K. Sahni, Ed. (University Park, Pa., Aug. 17-21, 1987), pp. 124-131.Google ScholarGoogle Scholar
  4. 4 Brown, M.R. The Analysis of a Practical and Nearly Optimal Priority Queue. Tech. Rep. STAN-CS-77-600, Computer Science Dept., Stanford Univ., 1977. (An abridged version appears as Implementation and analysis of bionomial queue algorithms. SIAM J. Computing 7, 3 (Aug. 1978) 298-319.)Google ScholarGoogle Scholar
  5. 5 Ford, R.F. and Calhoun, J. Concurrency control mechanisms and the serializability of concurrent tree algorithms. In Proceedings of the 3rd ACM SIGACT-SIGMOD Symposium on Principles of Database Systems (Waterloo, Ontario, Apr. 1984). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Jones, D.W. An empirical comparison of priority-queue and eventset implementations. Commun. ACM 29, 4 (Apr. 1986), 300-311. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Jones, D.W. Concurrent simulation: An alternative to distributed simulation. In Proceedings of the 1986 Winter Simulation Conference. J. Wilson, J. Henriksen, S. Roberts, Eds. (Washington, D.C., Dec. 8-10, 1986). pp. 417-423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Kingston, J.H. Analysis of tree algorithms for the simulation event list. Acta Informatica 22, I (Apr. 1985), 15-33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Knuth, D.E. The Art of Computer Programming. Volume III, Sorting and Searching. Addison-Wesiey, Reading, Mass., 1973, 150-153. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Lehman, P. and Yao, S. Efficient locking for concurrent operations on B-trees. ACM Trans. Database Syst. 6, 4 (Dec. 1981), 650-670. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 Nix, R. An Evaluation of Pagodas. Tech. Rep. 164, Computer Science Dept., Yale Univ., Conn. (no date).Google ScholarGoogle Scholar
  12. 12 Quinn, M.J. and Deo, N. Parallel Graph Algorithms. Comp. Surv. 16, 3 (Sept. 1984) 319-348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Sleator, D.D. and Tarjan. R.E. Self adjusting binary trees. In Proceedings of the 15th ACM Symposium on Theory of Computing (Boston, Mass., April 25-27, 1983}. ACM, New York, 235-246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Sleator, D.D. and Tarjan, R.E. Self adjusting heaps. SIAM J. Comput. 15, 1 (Feb. 1986), 52-59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Vuillemin. J. A data structure for manipulating priority queues. Commun. ACM 21, 4 (Apr. 1978), 309-315. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Concurrent operations on priority queues

              Reviews

              Frank Lawrence Friedman

              Jones discusses the use of skew heaps for the concurrent manipulation of shared queues. He produces a concurrent version of the top-down algorithm for a skew heap from the Sleator-Tarjan recursive version, using previously published transformations. He also discusses the correctness and serializability of the algorithm and shows how new operations on the queue are possible after O(1) time. Jones discusses applications to problems in graph theory and simulation. He presents a brief discussion of other possible algorithms for use in an MIMD environment with fine-grained concurrency control and gives reasons for the rejection of these algorithms. He makes the transformations from the recursive skew-heap algorithm to the concurrent version by noting that (1) the recursive call is the last operation in the recursive procedure (this allows a mechanical transformation to an iterative version) and (2) the iterative version never holds references to more than three items of the tree at any time. The author gives a Concurrent Pascal-S version of the algorithm and presents the results of testing this algorithm using repeated hold operations. The results of these tests suggest that significant speedup is possible for large queues and simple applications, but only in cases where the priority queue operations are more expensive than the operations in the main process.

              Access critical reviews of Computing literature here

              Become a reviewer for Computing Reviews.

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!