Realistic Parallel Algorithms: Priority Queue Operations and Selection for the BSP* Model t Armin B~umker, Wolfgang Dittrich, Friedhelm Meyer auf der Heide, and Ingo Rieping {abk, dittrich, fmadh, inri}@uni-paderborn.de Department of Mathematics and Computer Science and Heinz Nixdorf Institute University of Paderborn, D-33095 Paderborn, Germany Abstract. In this paper, we explore parallel implementations of the abstract data type priority queue. We use the BSP* model, an exten- sion of Valiant's BSP model which rewards blockwise communication, i.e. sending a few large messages instead of many small ones. We present two randomized approaches for different relations between the size of the data structure and the number of parallel updates to be performed. Both yield work optimal algorithms that need asymptotically less com- munication than computation time and use large messages. All previous work optimal algorithms need asymptotically as much communication as computation or do not consider blockwise communication. We use a work optimal randomized selection algorithm as a building block. This might be of independent interest. It uses less communication than com- putation time, if the keys are distributed at random. A similar selection algorithm was independently developed by Gerbessiotis and Siniolakis for the standard BSP model. We improve upon previous work by both reducing the amount of communication and by using large messages. 1 Introduction In this paper, we investigate parallel algorithms for maintaining priority queues. A priority queue is an abstract data structure that stores keys of a totally ordered set and supports insert and delete operations. We consider a parallel modifica- tion of these operations. Insert adds n keys to the data structure and DeleteMin extracts and removes the currently best m keys. Other operations could be con- sidered but we only deal with these two operations which are typically used in branch-and-bound algorithms. N denotes the number of keys currently stored in the data structure. We use the BSP* model, which was introduced in [3] as an extension of Valiant's BSP model [7]. This is a general purpose model for parallel computa- tion, representing a bridge between powerful abstractions, such as the PRAM, and real machines based on specific architectures. The BSP* model differs from t This research was partially supported by DFG-SFB 376 "Massive Parallelit~it" and EU ESPRIT Long Term Research Project 20244 (ALCOM-IT).