Abstract
In this paper we compare the performance of eight different priority queue implementations: four of them are explicitly designed to work in an external-memory setting, the others are standard internal-memory queues available in the LEDA library [Mehlhorn and Näher 1999]. Two of the external-memory priority queues are obtained by engineering known internal-memory priority queues with the aim of achieving effective performance on external storage devices (i.e., Radix heaps [Ahuja et al. 1990] and array heaps [Thorup 1996]). Our experimental framework includes some simple tests, like random sequences of insert or delete-minimum operations, as well as more advanced tests consisting of intermixed sequences of update operations and "application driven" update sequences originated by simulations of Dijkstra's algorithm on large graph instances. Our variegate spectrum of experimental results gives a good picture of the features of these priority queues, thus being helpful to anyone interested in the use of such data structures on very large data sets.
Supplemental Material
Available for Download
The software suite accompanying the article; this is a small Unix tar file, which includes the source code, a Makefile, and the test files used in the article.
- AHUJA, R., MEHLHORN, K., ORLIN, J., AND TARJAN, R. 1990. Faster algorithms for the shortest path problem. Journal of the ACM 37, 213-223.]] Google ScholarDigital Library
- ARGE, L. 1995. The buffer tree: A new technique for optimal I/O-algorithms. In Proceedings of the 4th International Workshop on Algorithms and Data Structures, Lecture Notes in Computer Science 955 (1995), pp. 334-345.]] Google ScholarCross Ref
- BARVE, R. D., GROVE, E. F., AND VITTER, J. S. 1997. Simple randomized mergesort on parallel disks. Parallel Computing 23, 4, 601-631.]] Google ScholarDigital Library
- BAYER, R. AND MCCREIGHT, E. 1972. Organization and maintenance of large ordered indices. Acta Informatica 1, 173-189.]]Google ScholarDigital Library
- BRODAL, G. S. AND KATAJAINEN, J. 1998. Worst-case efficient external-memory priority queues. In Proceedings of the 6th Scandinavian Workshop on Algorithmic Theory, Lecture Notes in Computer Science 1432 (1998), pp. 107-118.]] Google ScholarCross Ref
- CHERKASSKY, B. V., GOLDBERG, A. V., AND SILVERSTEIN, C. 1999. Buckets, heaps, lists, and monotone priority queues. SIAM Journal on Computing 28, 4, 1326-1346.]] Google ScholarDigital Library
- CHIANG, Y., GOODRICH, M. T., GROVE, E. F., TAMASSIA, R., VENGROFF, D. E., AND VITTER, J. S. 1995. External-memory graph algorithms. In Proceedings of the 6th Annual ACM-SIAM Symposium on Discrete Algorithms (1995), pp. 139-149.]] Google ScholarDigital Library
- CRAUSER, A. 1998. On the performance of LEDA-SM. Technical report, Max-Planck Institut für Informatik.]]Google Scholar
- CRAUSER, A. AND FERRAGINA, P. 2000. A theoretical and experimental study on the construction of suffix arrays in external memory. Algorithmica, to appear. Also Proceedings of the European Symposium on Algorithms, LNCS 1643, pp. 224-235.]] Google Scholar
- CRAUSER, A. AND MEHLHORN, K. 1999. LEDA-SM, extending LEDA to secondary memory. In Proceedings of the 3rd International Workshop on Algorithmic Engineering, Lecture Notes in Computer Science 1668 (1999), pp. 228-242.]] Google ScholarCross Ref
- CRAUSER, A., MEHLHORN, K., MEYER, U., AND SANDERS, P. 1998. A parallelization of dijkstra's shortest path algorithm. In Proceedings of the 23rd International Symposium on Mathematical Foundations of Computer Science, Lecture Notes in Computer Science 1450 (1998), pp. 722-731.]] Google ScholarCross Ref
- DIJKSTRA, E. 1959. A note on two problems in connection with graphs. Num. Math. 1, 269-271.]]Google ScholarDigital Library
- FADEL, R., JAKOBSEN, K. V., KATAJAINEN, J., AND TEUHOLA, J. 1999. Heaps and heapsort on secondary storage. Theoretical Computer Science 220, 2, 345-362.]] Google ScholarDigital Library
- FARACH, M., FERRAGINA, P., AND MUTHUKRISHNAN, S. 1998. Overcoming the memory bottleneck in suffix tree construction. In Proceedings of the 39th IEEE Symposium on Foundations of Computer Science (1998), pp. 174-185.]] Google ScholarCross Ref
- FREDMAN, M. AND TARJAN, R. 1987. Fibonacci heaps and their use in improved network optimization algorithms. Journal of the ACM 34, 596-615.]] Google ScholarDigital Library
- HUTCHINSON, D., MAHESHWARI, A., SACK, J., AND VELICESCU, R. 1997. Early experiences in implementing buffer trees. In Proceedings of the 2nd International Workshop on Algorithmic Engineering (1997), pp. 92-103.]]Google Scholar
- IEEE. 1987. IEEE standard 754-1985 for binary floating-point arithmetic, reprinted in SIGPLAN 22.]]Google Scholar
- KUMAR, V. AND SCHWABE, E. J. 1996. Improved algorithms and data structures for solving graph problems in external memory. In Proceedings of the 8th IEEE Symposium on Parallel and Distributed Processing (1996), pp. 169-177.]] Google ScholarDigital Library
- LAMARCA, A. AND LADNER, R. 1997. The influence of caches on the performance of heaps. ACM Journal of Experimental Algorithmics 1, article 4.]] Google Scholar
- MANBER, U. AND MYERS, C. 1993. Suffix arrays: a new method for on-line string searches. SIAM Journal on Computing 22, 5, 935-948.]] Google ScholarDigital Library
- MEHLHORN, K. AND NÄHER, S. 1999. LEDA: A Platform of Combinatorial and Geometric Computing. Cambridge University Press, Cambridge, England.]] Google Scholar
- NAOR, D., MARTEL, C., AND MATLOFF, N. 1991. Performance of priority queues in a virtual memory environment. The Computer Journal 34, 5, 428-437.]] Google ScholarDigital Library
- RUEMMLER, C. AND WILKES, J. 1994. An introduction to disk drive modeling. IEEE Computer 27, 3, 17-29.]] Google ScholarDigital Library
- SHRIVER, E. AND VITTER, J. 1994. Optimal algorithms for parallel memory i: Two-level memories. Algorithmica 12, 2-3, 110-147.]]Google Scholar
- THORUP, M. 1996. On RAM priority queues. In Proceedings of the Seventh Annual ACM-SIAM Symposium on Discrete Algorithms (1996), pp. 59-67.]] Google ScholarDigital Library
- VENGROFF, D. E. AND VITTER, J. S. 1995. Supporting I/O-efficient scientific computation in TPIE. In Proceedings of the IEEE Symposium on Parallel and Distributed Processing (1995), pp. 74-77.]] Google ScholarCross Ref
- VITTER, J. 1998. External memory algorithms. In ACM Symposium on Principles of Database Systems (1998). Also invited paper in European Symposium on Algorithms, 1998.]] Google ScholarDigital Library
- WILLIAM, J. 1964. Algoritm 232 (heapsort). Communication of the ACM 7, 347-348.]]Google Scholar
Index Terms
- An experimental study of priority queues in external memory
Recommendations
(N,n)-preemptive priority queues
In this paper, we propose a new priority discipline, called the (N,n)-preemptive priority discipline. Under this discipline, the preemption of the service of a low-class customer is determined by two thresholds N and n of the queue length of high-class ...
Preemptive Priority Queues
Customers of different priorities arrive at a counter in accordance with a Poisson process. The customers are served by a single server in order of priority and for each priority in order of arrival. Preemptive discipline is assumed. Three service ...
On priority queues with impatient customers
In this paper, we study three different problems where one class of customers is given priority over the other class. In the first problem, a single server receives two classes of customers with general service time requirements and follows a preemptive-...
Comments