<?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 Re: false sharing with thread checker? in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854166#M2008</link>
    <description>Yes..you nailed it. I am doing exactly what you describe and yes it is running on&lt;BR /&gt;a single processor with theck option. I have read all of the pages above and now&lt;BR /&gt;I can rest with ease.&lt;BR /&gt;Thanks&lt;BR /&gt;Umar&lt;BR /&gt;</description>
    <pubDate>Tue, 19 Jun 2007 21:43:22 GMT</pubDate>
    <dc:creator>umar</dc:creator>
    <dc:date>2007-06-19T21:43:22Z</dc:date>
    <item>
      <title>false sharing with thread checker?</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854164#M2006</link>
      <description>I have a large program that is working fine with OMP using Intel Fortran&lt;BR /&gt; compilers. When I run the code inside thread checker 3.1 it repors that&lt;BR /&gt; one of the OMP DO's gives me the following error:&lt;BR /&gt;&lt;BR /&gt;|6 |Read -&amp;gt; |Erro|376|"shf3d_om|Memory write at xtdhf conflicts |xtdh|xtdh|&lt;BR /&gt;| |Write  |r |320|p.f90":38 |with a prior memory read at xtdhf |f |f |&lt;BR /&gt;| |data-race |  |0 |4 &lt;BR /&gt;&lt;BR /&gt;The section corresponding to the error message is:&lt;BR /&gt;&lt;BR /&gt;!$OMP PARALLEL NUM_THREADS(2) DEFAULT(SHARED) PRIVATE(ido,tpsi)&lt;BR /&gt;!$OMP DO&lt;BR /&gt; do ido = 1, 2&lt;BR /&gt; call schmid (ido, lpsi, ncolx, ncoly, ncolz, npsi, npmin, spnorm(1,ido),&amp;amp;&lt;BR /&gt;    psi(1,1,1,1,1,ido), tpsi, itimrev, wxyz)&lt;BR /&gt; end do&lt;BR /&gt;!$OMP END DO&lt;BR /&gt;!$OMP END PARALLEL&lt;BR /&gt;&lt;BR /&gt;I am running on a QX6700 Quad. Other omp sections use all 4 processors but this&lt;BR /&gt;one I can only use 2. In soubroutine schmid only "spnorm" and "psi" are changed&lt;BR /&gt;and "tpsi" is a work array. As you can see these two arrays are explicitly indexed&lt;BR /&gt;with variable ido that is declared private.&lt;BR /&gt;&lt;BR /&gt;All other arrguments are declared intent(in) in the subroutine. As&lt;BR /&gt;I said earlier the code works fine. &lt;BR /&gt;&lt;BR /&gt;Any ideas?&lt;BR /&gt;</description>
      <pubDate>Sun, 17 Jun 2007 21:14:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854164#M2006</guid>
      <dc:creator>umar</dc:creator>
      <dc:date>2007-06-17T21:14:49Z</dc:date>
    </item>
    <item>
      <title>Re: false sharing with thread checker?</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854165#M2007</link>
      <description>&lt;P&gt;Umar,&lt;/P&gt;
&lt;P&gt;Are you compiling this fortran code with the Intel Fortran Compiler and using -tcheck compiler option? When you do this Intel Thread Checker will run the code in thread count independent analysis mode (also known as projection mode). In this mode, Intel Thread Checker actually runs the application with one thread, but within each openmp* parallel region it projects whether the parallel region is safe for multiple threads. So even through you specified openmp parameters that no more than 2 threads will execute this parallel region, because Intel Thread Checker is running a thread count independent analysis model - it considers what would happen if "n" threads were active (where n could be more than 2).&lt;/P&gt;
&lt;P&gt;This is probably what is happening and why you see the diagnostic report for this region and none of the other openmp* parallel regions. The thread count independent analysis model is very useful analysis technic we encourage people to try when prototyping new code or checking for thread safety. Please see the following article for more information on why this analysis model can be so useful: &lt;A href="http://www3.intel.com/cd/ids/developer/asmo-na/eng/253244.htm?prn=y"&gt;http://www3.intel.com/cd/ids/developer/asmo-na/eng/253244.htm?prn=y&lt;/A&gt; You have to read the full article though.&lt;/P&gt;
&lt;P&gt;Hopes this helps.&lt;/P&gt;
&lt;P&gt;drmackay&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2007 20:13:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854165#M2007</guid>
      <dc:creator>David_M_Intel3</dc:creator>
      <dc:date>2007-06-19T20:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: false sharing with thread checker?</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854166#M2008</link>
      <description>Yes..you nailed it. I am doing exactly what you describe and yes it is running on&lt;BR /&gt;a single processor with theck option. I have read all of the pages above and now&lt;BR /&gt;I can rest with ease.&lt;BR /&gt;Thanks&lt;BR /&gt;Umar&lt;BR /&gt;</description>
      <pubDate>Tue, 19 Jun 2007 21:43:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/false-sharing-with-thread-checker/m-p/854166#M2008</guid>
      <dc:creator>umar</dc:creator>
      <dc:date>2007-06-19T21:43:22Z</dc:date>
    </item>
  </channel>
</rss>

