<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Parallel Hashlist ... in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-Hashlist/m-p/882165#M3367</link>
    <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;A name="msg_e8d4e27601b18da4"&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Hello,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Description&lt;/P&gt;
&lt;P&gt;A parallel HashList with O(1) (best case) and O(log(n))(worst case) &lt;BR /&gt;access that use a hash based method with an array of MREWs. This &lt;BR /&gt;will allow to parallelize the writes and reads in separate chains , &lt;BR /&gt;and also to parallelize the reads in the same chain.&lt;/P&gt;
&lt;P&gt;Language: FPC Pascal v2.2.0+ / Delphi 5+: &lt;A href="http://www.google.com/url?sa" rel="nofollow" target="_blank"&gt;http://www.freepascal.org/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Operating Systems: Win , Linux and Mac (x86).&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;For benchmarks and a capacity planning example look here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://pages.videotron.com/aminer/parallelhashlist/queue.htm" rel="nofollow" target="_blank"&gt;http://pages.videotron.com/aminer/parallelhashlist/queue.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;You will find the zipfile in:&lt;/P&gt;
&lt;P&gt;Welcome:&lt;A href="http://www.google.com/url?sa" rel="nofollow" target="_blank"&gt;http://pages.videotron.com/aminer/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And here is a small example on how to use ParallelHashlist: &lt;BR /&gt;(I have included it inside the zipfile)&lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;program test;&lt;/P&gt;
&lt;P&gt;uses {$IFDEF Delphi}cmem,{$ENDIF} &lt;BR /&gt;Parallelhashlist,windows,syncobjs,sysutils,classes;&lt;/P&gt;
&lt;P&gt;var &lt;BR /&gt;hndlArr : Array[0..19] of THandle; &lt;BR /&gt;AId:DWORD; &lt;BR /&gt;event:TSimpleEvent; &lt;BR /&gt;hash1:TParallelHashList; &lt;BR /&gt;j:integer; &lt;BR /&gt;trait:TCaseinsensitiveTraits; &lt;BR /&gt;obj:pointer;&lt;/P&gt;
&lt;P&gt;function StartFunc1(InVal:pointer):longword;&lt;/P&gt;
&lt;P&gt;var i,j:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 //800000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc2(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt;a:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc3(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc4(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt; obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;begin &lt;BR /&gt;randomize; &lt;BR /&gt;trait:=TCaseinsensitiveTraits.create;; &lt;BR /&gt;hash1:=TParallelHashList.create(trait,6000000); &lt;BR /&gt;for j:=0 to 5000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;obj:=pointer(j); &lt;BR /&gt;hash1.Add('amine moulay ramdane'+inttostr(j),obj); &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;event:=TSimpleEvent.create; &lt;BR /&gt;hndlArr[0]:=BeginThread(nil,0,@StartFunc1,pointer(1),0,AId); &lt;BR /&gt;hndlArr[1]:=BeginThread(nil,0,@StartFunc2,pointer(1),0,AId); &lt;BR /&gt;hndlArr[2]:=BeginThread(nil,0,@StartFunc3,pointer(1),0,AId); &lt;BR /&gt;hndlArr[3]:=BeginThread(nil,0,@StartFunc4,pointer(1),0,AId);&lt;/P&gt;
&lt;P&gt;event.setevent; &lt;BR /&gt;WaitForMultipleObjects(4, @hndlArr, True, INFINITE);&lt;/P&gt;
&lt;P&gt;event.free; &lt;BR /&gt;hash1.free;&lt;/P&gt;
&lt;P&gt;end.&lt;/P&gt;
&lt;P&gt;-------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Regards, &lt;BR /&gt;Amine Moulay Ramdane.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 26 Feb 2010 17:47:17 GMT</pubDate>
    <dc:creator>aminer10</dc:creator>
    <dc:date>2010-02-26T17:47:17Z</dc:date>
    <item>
      <title>Parallel Hashlist ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-Hashlist/m-p/882165#M3367</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;A name="msg_e8d4e27601b18da4"&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;Hello,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Description&lt;/P&gt;
&lt;P&gt;A parallel HashList with O(1) (best case) and O(log(n))(worst case) &lt;BR /&gt;access that use a hash based method with an array of MREWs. This &lt;BR /&gt;will allow to parallelize the writes and reads in separate chains , &lt;BR /&gt;and also to parallelize the reads in the same chain.&lt;/P&gt;
&lt;P&gt;Language: FPC Pascal v2.2.0+ / Delphi 5+: &lt;A href="http://www.google.com/url?sa" rel="nofollow" target="_blank"&gt;http://www.freepascal.org/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Operating Systems: Win , Linux and Mac (x86).&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;For benchmarks and a capacity planning example look here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://pages.videotron.com/aminer/parallelhashlist/queue.htm" rel="nofollow" target="_blank"&gt;http://pages.videotron.com/aminer/parallelhashlist/queue.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;You will find the zipfile in:&lt;/P&gt;
&lt;P&gt;Welcome:&lt;A href="http://www.google.com/url?sa" rel="nofollow" target="_blank"&gt;http://pages.videotron.com/aminer/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And here is a small example on how to use ParallelHashlist: &lt;BR /&gt;(I have included it inside the zipfile)&lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;program test;&lt;/P&gt;
&lt;P&gt;uses {$IFDEF Delphi}cmem,{$ENDIF} &lt;BR /&gt;Parallelhashlist,windows,syncobjs,sysutils,classes;&lt;/P&gt;
&lt;P&gt;var &lt;BR /&gt;hndlArr : Array[0..19] of THandle; &lt;BR /&gt;AId:DWORD; &lt;BR /&gt;event:TSimpleEvent; &lt;BR /&gt;hash1:TParallelHashList; &lt;BR /&gt;j:integer; &lt;BR /&gt;trait:TCaseinsensitiveTraits; &lt;BR /&gt;obj:pointer;&lt;/P&gt;
&lt;P&gt;function StartFunc1(InVal:pointer):longword;&lt;/P&gt;
&lt;P&gt;var i,j:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 //800000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc2(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt;a:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc3(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt;obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;function StartFunc4(InVal:pointer):longword; &lt;BR /&gt;var i:integer; &lt;BR /&gt; obj:pointer; &lt;BR /&gt;begin &lt;BR /&gt;event.waitfor(INFINITE); &lt;BR /&gt;for i:=0 to 1000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;hash1.find('amine moulay &lt;BR /&gt;ramdane'+inttostr(random(5000000)),pointer(obj)); &lt;BR /&gt;end; &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;begin &lt;BR /&gt;randomize; &lt;BR /&gt;trait:=TCaseinsensitiveTraits.create;; &lt;BR /&gt;hash1:=TParallelHashList.create(trait,6000000); &lt;BR /&gt;for j:=0 to 5000000 &lt;BR /&gt;do &lt;BR /&gt;begin &lt;BR /&gt;obj:=pointer(j); &lt;BR /&gt;hash1.Add('amine moulay ramdane'+inttostr(j),obj); &lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;event:=TSimpleEvent.create; &lt;BR /&gt;hndlArr[0]:=BeginThread(nil,0,@StartFunc1,pointer(1),0,AId); &lt;BR /&gt;hndlArr[1]:=BeginThread(nil,0,@StartFunc2,pointer(1),0,AId); &lt;BR /&gt;hndlArr[2]:=BeginThread(nil,0,@StartFunc3,pointer(1),0,AId); &lt;BR /&gt;hndlArr[3]:=BeginThread(nil,0,@StartFunc4,pointer(1),0,AId);&lt;/P&gt;
&lt;P&gt;event.setevent; &lt;BR /&gt;WaitForMultipleObjects(4, @hndlArr, True, INFINITE);&lt;/P&gt;
&lt;P&gt;event.free; &lt;BR /&gt;hash1.free;&lt;/P&gt;
&lt;P&gt;end.&lt;/P&gt;
&lt;P&gt;-------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Regards, &lt;BR /&gt;Amine Moulay Ramdane.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Feb 2010 17:47:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-Hashlist/m-p/882165#M3367</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2010-02-26T17:47:17Z</dc:date>
    </item>
    <item>
      <title>Parallel Hashlist ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-Hashlist/m-p/882166#M3368</link>
      <description>&lt;DIV id="inbdy"&gt;&lt;A name="msg_1b80f9c78e0981f4"&gt;&lt;/A&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I haveupdated the graph for ParallelHashList benchmarks:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.google.com/url?sa" rel="nofollow" target="_blank"&gt;http://pages.videotron.com/aminer/parallelhashlist/queue.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Regards, &lt;BR /&gt;Amine Moulay Ramdane.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 01 Mar 2010 17:07:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-Hashlist/m-p/882166#M3368</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2010-03-01T17:07:50Z</dc:date>
    </item>
  </channel>
</rss>

