哪个Hashfunction可以选择并行插入一组值?

时间:2014-06-11 21:17:42

标签: parallel-processing hashmap

我有一个大小为w * h的散列表T,每个条目有一个存储桶,用于存储映射到同一散列的值。

现在我要插入一组值G. G中的每个值包含位置元组(x,y)和某个有效载荷p。

哈希函数使用值的位置元组作为参数:H(x,y)。 G本质上是一个网格,每个位置存储有效载荷p。

要在不同步的情况下将G中的所有值并行插入T,H应该保证G中所有值的不同散列。

G的宽度小于w,其高度小于h,所以

H(x,y) = mod y * w + mod x 

会合适。

但是,这个简单的模数散列函数仅适用于uniformly distributed data

literature中,建议更适合(至少对我的应用程序而言)散列函数:

H(x,y) = (x*p xor y*q) mod(w*h)

其中p和q是大素数。 但我不确定如何检查网格的所有值是否会映射到不同的哈希值。

有谁知道如何证明(如果是这种情况)或者是否有人知道适合的哈希函数?

非常感谢!

0 个答案:

没有答案