Date: 29 May 2005

Simple fast parallel hashing

* Final gross prices may vary according to local VAT.

Get Access

Abstract

A hash table is a representation of a set in a linear size data structure that supports constant-time membership queries. We show how to construct a hash table for any given set of n keys in O(lg lg n) parallel time with high probability, using n processors on a weak version of a crcw pram.

The algorithm is simple and is sketched by the following:

  1. Partition the input set into buckets by a random polynomial of constant degree.

  2. For t:=1 to O(lg lg n) do

  3. Allocate M t memory blocks, each of size B t , where M t and B t are carefully a priori selected parameters.

  4. Let each bucket select a block at random, and try to injectively map its keys into the block using a random linear function. Buckets that fail carry on to the next iteration.

The algorithm uses only O(lg lg n) random words, and can be implemented in a work-efficient manner.

Research done in part during a visit to AT&T Bell Laboratories.