On Parallel Hashing and Integer Sorting
Abstract:
The problem of sorting n integers from a restricted range 1..m, where m is superpolynomial in n, is considered. An on log n randomized algorithm is given. Our algorithm takes On log log m expected time and On space. Thus, for m n sub polylogm we have an On log log n algorithm. The algorithm is parallelizable. The resulting parallel algorithm achieves optimal speed up. Some features of the algorithm make us believe that it is relevant for practical applications. A result of independent interest is a parallel hashing technique. The expected construction time is logarithmic using an optimal number of processors, and Searching for a value takes O1 time in the worst case. This technique enables drastic reduction of space requirements for the price of using randomness. Applicability of the technique is demonstrated for the parallel sorting algorithm, and for some parallel string matching algorithms. The parallel sorting algorithm is designed for a strong and non standard model of parallel computation. Efficient simulations of the strong model on a CRCW PRAM Concurrent Read Concurrent Write Parallel Random Access Machine are introduced. One of the simulations even achieves optimal speed up. This is probably a first optimal speed up simulation of a certain kind.