Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #873

Re: ParallelHashList was updated to version 1.3 ...

From "aminer" <aminer@videotron.ca>
Newsgroups comp.programming.threads, comp.programming
Subject Re: ParallelHashList was updated to version 1.3 ...
Date 2012-05-17 19:21 -0500
Organization A noiseless patient Spider
Message-ID <jp44mb$hdt$2@dont-email.me> (permalink)
References <jp3qm5$hb0$1@dont-email.me>

Cross-posted to 2 groups.

Show all headers | View raw



When do we use parallelhashlist ?

"We use hash tables when their magic fits our problem.

For example, caching frequently ends up using a hash table -- for example, 
let's say we have 45,000 students in a university and some process needs to 
hold on to records for all of them. If you routinely refer to student by ID 
number, then a ID => student cache makes excellent sense. The operation you 
are optimizing for this cache is fast lookup.

Hashes are also extraordinarily useful for storing relationships between 
data when you don't want to go whole hog and alter the objects themselves. 
For example, during course registration, it might be a good idea to be able 
to relate students to the classes they are taking. However, for whatever 
reason you might not want the Student object itself to know about that. Use 
a studentToClassRegistration hash and keep it around while you do whatever 
it is you need to do.

They also make a fairly good first choice for a data structure except when 
you need to do one of the following:"






"aminer" <aminer@videotron.ca> wrote in message 
news:jp3qm5$hb0$1@dont-email.me...
>
> Hello,
>
>
> In my previous version of ParallelHashList even if i have used
> lock striping for the hash chains, synchronizing access to the counter
> that computes the number of entries in the hashmap was reintroducing
> the scalability problem of exclusive locking, this counter was  called
> a hot field because every mutative operation needs to access it.
> In this new version 1.3 of parallelhashlist i have splited the global
> counter to many counters to enhance the scalability... also i have 
> changed
> parallelhashlist to use only 100 lightweight  MREWs 
> (multiple-readers -exclusive-writer)
> this will lower the memory consumption  and this will allow to parallelize
> the writes and reads in separate chains , and also to parallelize the 
> reads
> in the same chain of the hashmap , so this will give a good performance
> and a good scalability .
>
> Description:
>
> A Parallel HashList with O(1) (best case) and O(log(n)(worst case)
> access that use a hash based method that uses lock striping and
> 100 lightweight  MREWs (multiple-readers -exclusive-writer).
> This will allow to parallelize the writes and reads in separate chains , 
> and
> also to parallelize the reads in the same chain.
>
>
> You can download parallelhashlist from:
>
> http://pages.videotron.com/aminer/
>
>
> Language: FPC Pascal v2.2.0+ / Delphi 5+: http://www.freepascal.org/
>
>
> Operating Systems: Win , Linux and Mac (x86).
>
> and please take a look at the benchmarks here:
>
> http://pages.videotron.com/aminer/parallelhashlist/queue.htm
>
> Note: When i have done those benchmarks , there was not enough/much items
> organized as a self-balancing tree in the individual chains of the 
> hashtable, so ,
> almost all the items was found and inserted in O(1) , so the parallel part 
> in the
> Amdahl equation was not much bigger compared to to the serial part. But 
> you
> will notice in pratice that as soon as you will have more items on the 
> chains of
> the Hashtable, organized as self-balancing tree, with a worst case log(n) 
> , the
> parallel part will become bigger in the Amdahl equation and you will have 
> better
> performance and scalability than the numbers in the graph of the 
> benchmarks ...
>
>
>
> Thank you.
>
> Amine Moulay Ramdane.
>
>
>
> 

Back to comp.programming.threads | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 17:30 -0500
  Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 18:00 -0500
    Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 18:28 -0500
    Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 19:17 -0500
  Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 19:21 -0500
  Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 19:58 -0500
    Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 20:02 -0500
  Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 21:01 -0500
  Re: ParallelHashList was updated to version 1.3 ... "aminer" <aminer@videotron.ca> - 2012-05-17 21:23 -0500

csiph-web