Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #1586
| 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.
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 | Next — Previous in thread | Next in thread | Find similar
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