Chapter

Automata, Languages and Programming

Volume 820 of the series Lecture Notes in Computer Science pp 239-250

Date:

Simple fast parallel hashing

Extended abstract
  • Joseph GilAffiliated withDepartment of Computer Science, The Technion-Israel Institute of Technology Email author 
  • , Yossi MatiasAffiliated withAT&T Bell Laboratories Email author 

* 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. 1.

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

     
  2. 2.

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

     
  3. (a)

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

     
  4. (b)

    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.