An experimental study of priority queues in external memory

  • Authors:
  • Klaus Brengel;Andreas Crauser;Paolo Ferragina;Ulrich Meyer

  • Affiliations:
  • Max-Planck Institut fur Informatik, Germany;Max-Planck Institut fur Informatik, Germany;Max-Planck Institut fur Informatik, Germany;Max-Planck Institut fur Informatik, Germany

  • Venue:
  • Journal of Experimental Algorithmics (JEA)
  • Year:
  • 2000

Quantified Score

Hi-index 0.01

Visualization

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.