<?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 Parallelhashlist was updated to version 1.41 ... in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812330#M1045</link>
    <description>&lt;BR /&gt;Hello all,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have updated parallelhashlist to version 1.41..&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have modified parallelhashlist to use 128 locks, but you &lt;BR /&gt;have to use a hashsize inpower of 2 and greater to 1000,&lt;BR /&gt;how do you pass a hashsize in power of 2 to the constructor? &lt;BR /&gt;by using shl operation like this&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;trait:=TCaseinsensitiveTraits.create;;&lt;BR /&gt;hash1:=TParallelHashList.create(trait,1 shl 25);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Why do you have to use a power of2 ?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Please read this:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;&lt;STRONG&gt;Power-of-Two Hash Table Size&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;"Any data structures 101 book will say choose a prime for the&lt;BR /&gt;number of buckets, so that the bucket's index can easily be computed &lt;BR /&gt;by h(k) = k mod m, where k is the key value and m is the bucket size. &lt;BR /&gt;While this approach is straight-forward, there are a number of issues &lt;BR /&gt;with it, including slow modulo performance. ConcurrentHashMap instead &lt;BR /&gt;uses a power-of-two rule"&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://work.tinou.com/2008/09/performance-optimization-in-concurrenthashmap.html"&gt;http://work.tinou.com/2008/09/performance-optimization-in-concurrenthashmap.html&lt;/A&gt;&lt;/P&gt;&lt;BR /&gt;I am usingmodulo functions inside parallelhashlist, and using a number of locks &lt;BR /&gt;in power of 2, so you have to usehashsize in power of 2 , this will make the &lt;BR /&gt;modulo function ofthe delphi and freepascal compilers10X faster.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You can download parallelhashlist version 1.41 from:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://pages.videotron.com/aminer/"&gt;http://pages.videotron.com/aminer/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Wed, 30 May 2012 22:33:46 GMT</pubDate>
    <dc:creator>aminer10</dc:creator>
    <dc:date>2012-05-30T22:33:46Z</dc:date>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812330#M1045</link>
      <description>&lt;BR /&gt;Hello all,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have updated parallelhashlist to version 1.41..&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have modified parallelhashlist to use 128 locks, but you &lt;BR /&gt;have to use a hashsize inpower of 2 and greater to 1000,&lt;BR /&gt;how do you pass a hashsize in power of 2 to the constructor? &lt;BR /&gt;by using shl operation like this&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;trait:=TCaseinsensitiveTraits.create;;&lt;BR /&gt;hash1:=TParallelHashList.create(trait,1 shl 25);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Why do you have to use a power of2 ?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Please read this:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;&lt;STRONG&gt;Power-of-Two Hash Table Size&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;"Any data structures 101 book will say choose a prime for the&lt;BR /&gt;number of buckets, so that the bucket's index can easily be computed &lt;BR /&gt;by h(k) = k mod m, where k is the key value and m is the bucket size. &lt;BR /&gt;While this approach is straight-forward, there are a number of issues &lt;BR /&gt;with it, including slow modulo performance. ConcurrentHashMap instead &lt;BR /&gt;uses a power-of-two rule"&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://work.tinou.com/2008/09/performance-optimization-in-concurrenthashmap.html"&gt;http://work.tinou.com/2008/09/performance-optimization-in-concurrenthashmap.html&lt;/A&gt;&lt;/P&gt;&lt;BR /&gt;I am usingmodulo functions inside parallelhashlist, and using a number of locks &lt;BR /&gt;in power of 2, so you have to usehashsize in power of 2 , this will make the &lt;BR /&gt;modulo function ofthe delphi and freepascal compilers10X faster.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You can download parallelhashlist version 1.41 from:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://pages.videotron.com/aminer/"&gt;http://pages.videotron.com/aminer/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 30 May 2012 22:33:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812330#M1045</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-05-30T22:33:46Z</dc:date>
    </item>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812331#M1046</link>
      <description>&lt;BR /&gt;&lt;BR /&gt;I wrote:&lt;BR /&gt;&amp;gt;I have modified parallelhashlist to use 128 locks&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I mean 128 lightweight MREWs (multiple-readers -exclusive-writer).&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.</description>
      <pubDate>Wed, 30 May 2012 22:38:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812331#M1046</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-05-30T22:38:46Z</dc:date>
    </item>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812332#M1047</link>
      <description>&lt;BR /&gt;I wrote:&lt;BR /&gt;&lt;BR /&gt;&amp;gt;I am usingmodulo functions inside parallelhashlist, and using a number of locks &lt;BR /&gt;&amp;gt;in power of 2, so you have to usehashsize in power of 2 , this will make the &lt;BR /&gt;&amp;gt;modulo function ofthe delphi and freepascal compilers10X faster.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I mean that the modulo function that i am using a lot inside parallelhashlist&lt;BR /&gt;is 10X faster when the hashsize is power of 2 than when it's not power of 2.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 30 May 2012 22:46:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812332#M1047</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-05-30T22:46:07Z</dc:date>
    </item>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812333#M1048</link>
      <description>&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have done some scalability tests on parallelhashlist 1.41 &lt;BR /&gt;on an Intel Core 2 Quad Q6600..&lt;BR /&gt;&lt;BR /&gt;Using 4 threads on4 coresusing the find() method i had a perfect scaling of 4X .&lt;BR /&gt;&lt;BR /&gt;Using4 threads on4 coresusing the Add() methodihad a scaling of 3.4X &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 02 Jun 2012 22:40:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812333#M1048</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-02T22:40:08Z</dc:date>
    </item>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812334#M1049</link>
      <description>&lt;BR /&gt;&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I have done those tests to show some numbers...&lt;BR /&gt;&lt;BR /&gt;But the scalability of parallelhashlist does depend onthe data keys &lt;BR /&gt;that are presentedto parallelhashlist,when the data keys are hashed &lt;BR /&gt;and are very well distributedacrossthe segments, in fact you can &lt;BR /&gt;get a perfect 4X scaling both on reads and writes.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 02 Jun 2012 22:52:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812334#M1049</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-02T22:52:29Z</dc:date>
    </item>
    <item>
      <title>Parallelhashlist was updated to version 1.41 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812335#M1050</link>
      <description>&lt;P&gt;&lt;BR /&gt;I write:&lt;BR /&gt;&amp;gt;But the scalability of parallelhashlist does depend on the data keys &lt;BR /&gt;&amp;gt;that are presented to parallelhashlist, when the data keys are hashed &lt;BR /&gt;&amp;gt;and are very well distributed across the segments, in fact you can &lt;BR /&gt;&amp;gt;get a perfect 4X scaling both on reads and writes.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I mean a perfect scaling on 4 cores...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Amine Moulay Ramdane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 02 Jun 2012 22:58:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallelhashlist-was-updated-to-version-1-41/m-p/812335#M1050</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-02T22:58:04Z</dc:date>
    </item>
  </channel>
</rss>

