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


Groups > comp.programming > #1586

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:17 -0500
Organization A noiseless patient Spider
Message-ID <jp44f4$ga4$2@dont-email.me> (permalink)
References <jp3qm5$hb0$1@dont-email.me> <jp3vuq$iup$2@dont-email.me>

Cross-posted to 2 groups.

Show all headers | View raw



Hello

You can use the Parallel Iterate() method of parallelhashlist
when also you want to do a sort by keys...



Amine Moulay Ramdane.






"aminer" <aminer@videotron.ca> wrote in message 
news:jp3vuq$iup$2@dont-email.me...
>
> Hello again,
>
>
> I have designed the Iterate() method to be scalable.
>
> The iterate method calls the AIterateFunc function on each item in the 
> hash
>
> And you can use Iterate like this:
>
> First declare two variables like this
>
> var
> :
> IterFunc: TIterateFunc;
> MyKey:pchar;
>
>
> And after that declare your TIterateFunc like this:
>
> ---
>
> function Iter(AUserData: Pointer; const AStr: string;
> var APtr: Pointer): Boolean;
>
> begin
>
> Iter:=true;
>
> writeln(Astr);
>
> if Astr=Pchar(AUserData) then Iter:=false;
>
> end;
>
> ---
>
> and after that you add for example the following in the main body:
>
>
>
> ---
>
> IterFunc:=Iter;
>
> MyKey:='amine moulay ramdane 1';
>
> hash.Iterate(MyKey,IterFunc);
>
> ---
>
>
>
> That's all, i have just put a test1.pas example that uses the iterate() 
> method
>
> inside the zipfile, you have to uncomment three lines in the test1.pas 
> example
>
> to be able to use this method , please download again the zipfile from:
>
> http://pages.videotron.com/aminer/
>
>
>
>
>
> Thank you.
>
> Amine Moulay Ramdane.
>
>
>
> "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 | Previous | NextPrevious in thread | Next in thread | Find similar


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