<?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: Qopenmp when not using OpenMP in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568711#M170720</link>
    <description>&lt;P&gt;Jim, this is exactly what I intended to say, i is uninitialized inside the parallel region. Outside the parallel region it is initialized to 1, no matter what happens inside the parallel region.&lt;BR /&gt;Now IFORT uses a non-standard behavior and simply generates code as if !$omp parallel was completely absent, while IFX follows the standard where if(.false.) is just setting num_threads(1) and the privatization of i still happens.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;program test_parallel_if
  implicit none
  integer :: i

  i = 1
  write(*,*) 'i before parallel region',i
  !$omp parallel private(i) if(.false.)                                                                                                                                                                                                                                                                                       
  write(*,*) 'i inside parallel 1 region',i
  i = 2
  write(*,*) 'i inside parallel 2 region',i
  !$omp end parallel                                                                                                                                                                                                                                                                                                          
  write(*,*) 'i outside parallel 2 region',i

end program test_parallel_if

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifx -O0 -qopenmp parallel_if_1.f90 
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           0
 i inside parallel 2 region           2
 i outside parallel 2 region           1
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifort -O0 -qopenmp parallel_if_1.f90 
ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is now deprecated and will be discontinued late 2024. Intel recommends that customers transition now to using the LLVM-based Intel(R) Fortran Compiler (ifx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Use '-diag-disable=10448' to disable this message.
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2

tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifort -O0 parallel_if_1.f90 
ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is now deprecated and will be discontinued late 2024. Intel recommends that customers transition now to using the LLVM-based Intel(R) Fortran Compiler (ifx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Use '-diag-disable=10448' to disable this message.
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifx -O0 parallel_if_1.f90 
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit:&lt;BR /&gt;&lt;BR /&gt;Ok, since&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/338065"&gt;@cureshot&lt;/a&gt;&amp;nbsp;sees a difference between -qopenmp / -qno-openmp he should watch out for variables that are privatized and reused after parallel regions. With qopenmp the variable has still the same value as before the parallel region with qno-openmp the value is changed.&lt;BR /&gt;&lt;BR /&gt;The additional difference in treating the if clause is maybe not as relevant, but still something one should look for, e.g. one might have coded&lt;BR /&gt;!$omp parallel if(omp_get_max_threads().gt.1)&lt;/P&gt;
&lt;P&gt;Which will make -qopenmp/-qno-openmp equivalaent for IFORT and with IFX you still since the difference between qopenmp/noopenmp for OMP_NUM_THREADS=1&lt;/P&gt;</description>
    <pubDate>Fri, 02 Feb 2024 13:05:51 GMT</pubDate>
    <dc:creator>TobiasK</dc:creator>
    <dc:date>2024-02-02T13:05:51Z</dc:date>
    <item>
      <title>Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567840#M170684</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having the following discrepancy. I run the following three experimentations: (i) I run my code with Qopenmp compiler switch (IFORT) but with no OPENMP directives enabled, (ii) I run without Qopenmp, (iii) I run with Qopenmp with OPENMP directives enabled using 96 threads.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My first and third results are identical but significantly differs from the second one. I have been trying to figure out the source of this problem but so far no luck.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Does anyone know what is happening behind the scenes&amp;nbsp;and can lead me? Which one would be more reliable?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;best, kursat&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 10:23:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567840#M170684</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-01-31T10:23:02Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567861#M170687</link>
      <description>&lt;P&gt;What do you mean by "results" I think it may be helpful to add to your question to give more detail.&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 11:17:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567861#M170687</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2024-01-31T11:17:55Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567864#M170688</link>
      <description>&lt;P&gt;I am solving a dynamic optimization problem with&amp;nbsp;&lt;SPAN&gt;multiple continuous choice variables. The maximizers of a function substantially change depending on whether I have&amp;nbsp;Qopenmp compiler switch or not. Please let me know if this clarifies "results"&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 11:25:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567864#M170688</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-01-31T11:25:02Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567875#M170689</link>
      <description>&lt;P&gt;So you are talking about numeric differences in "results" rather than some other attribute like say run time so yes that does help.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 11:49:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567875#M170689</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2024-01-31T11:49:06Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567876#M170690</link>
      <description>&lt;P&gt;Yes, any leads?&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 11:50:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567876#M170690</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-01-31T11:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567959#M170693</link>
      <description>&lt;P&gt;The difference I can think of is that /Qopenmp implies /recursive, using the stack for things that would otherwise be in static storage. If you have references to uninitialized memory that change would be a prime candidate for triggering bad results.&lt;/P&gt;&lt;P&gt;(Note: While Fortran 2018 makes all procedures recursive by default, the Intel compiler currently doesn't do that unless you specify /standard-semantics.)&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2024 16:00:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1567959#M170693</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2024-01-31T16:00:20Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568654#M170716</link>
      <description>&lt;P&gt;Dear Steve, Thank you for your response. I am still working on the discrepancy. If I had to stick on to one, which one would be the most reliable one? The one with &lt;SPAN&gt;/Qopenmp&amp;nbsp;is switched on or off?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;best&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 08:06:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568654#M170716</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-02-02T08:06:13Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568671#M170717</link>
      <description>&lt;P&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/338065"&gt;@cureshot&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;1) How do you disable directives?&lt;BR /&gt;2) How does you compile / link line look like?&lt;BR /&gt;3) Do you have external dependencies? MKL uses TBB or OpenMP depending on the presence of qopenmp.&lt;BR /&gt;4) Do you use openmp simd somewhere in the code? -qopenmp enables -qopenmp-simd (In IFX -qopenmp-simd is enabled at -O1 even without -qopenmp...)&lt;BR /&gt;5) Just to be sure, run with your (i) with&amp;nbsp;&lt;SPAN class="textbf"&gt;&lt;SPAN class="texttt"&gt;OMP_DISPLAY_ENV=verbose or true&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;6) Not relevant for IFORT but for IFX:&amp;nbsp;&lt;BR /&gt;In IFORT if a parallel region with an if statement is encountered and the if statement evaluates to false, the parallel region the data sharing was completley ignored. This was not compliant with the standard. In IFX the data sharing clauses are still honored, e.g. the if clause is just another way to set num_threads(1) for that region.&lt;/P&gt;
&lt;P&gt;E.g.:&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;i=1
!$omp parallel private(i) if(.false.)
write(*,*) i
!$omp end parallel&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;will return for IFORT 1 and for IFX i is not initialized since it is declared private.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 09:16:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568671#M170717</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-02-02T09:16:47Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568707#M170719</link>
      <description>&lt;P&gt;Tobias, I think your example does not illustrate the point you are trying to make.&lt;/P&gt;&lt;P&gt;Consider:&lt;/P&gt;&lt;LI-CODE lang="fortran"&gt;i=1
!$omp parallel private(i) if(.false.)
write(*,*) i
!$omp end parallel
write(*,*) Array(i)&lt;/LI-CODE&gt;&lt;P&gt;According to your text for 6), i would be undefined. I don't think that is what you wanted to illustrate.&lt;/P&gt;&lt;P&gt;Perhaps if i were declared and then only defined on your line 1, used only in the !$omp region, and not used outside of that parallel region (and optimizations enabled), that then the "i=1" would be elided by the optimization. So maybe you meant to say this in your description for point 6.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 12:16:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568707#M170719</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2024-02-02T12:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568711#M170720</link>
      <description>&lt;P&gt;Jim, this is exactly what I intended to say, i is uninitialized inside the parallel region. Outside the parallel region it is initialized to 1, no matter what happens inside the parallel region.&lt;BR /&gt;Now IFORT uses a non-standard behavior and simply generates code as if !$omp parallel was completely absent, while IFX follows the standard where if(.false.) is just setting num_threads(1) and the privatization of i still happens.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;program test_parallel_if
  implicit none
  integer :: i

  i = 1
  write(*,*) 'i before parallel region',i
  !$omp parallel private(i) if(.false.)                                                                                                                                                                                                                                                                                       
  write(*,*) 'i inside parallel 1 region',i
  i = 2
  write(*,*) 'i inside parallel 2 region',i
  !$omp end parallel                                                                                                                                                                                                                                                                                                          
  write(*,*) 'i outside parallel 2 region',i

end program test_parallel_if

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifx -O0 -qopenmp parallel_if_1.f90 
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           0
 i inside parallel 2 region           2
 i outside parallel 2 region           1
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifort -O0 -qopenmp parallel_if_1.f90 
ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is now deprecated and will be discontinued late 2024. Intel recommends that customers transition now to using the LLVM-based Intel(R) Fortran Compiler (ifx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Use '-diag-disable=10448' to disable this message.
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2

tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifort -O0 parallel_if_1.f90 
ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is now deprecated and will be discontinued late 2024. Intel recommends that customers transition now to using the LLVM-based Intel(R) Fortran Compiler (ifx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Use '-diag-disable=10448' to disable this message.
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ifx -O0 parallel_if_1.f90 
tkloeffe@ortce-skl22:~/TCE/JIRA/own/OpenMP/parallel_if$ ./a.out 
 i before parallel region           1
 i inside parallel 1 region           1
 i inside parallel 2 region           2
 i outside parallel 2 region           2
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit:&lt;BR /&gt;&lt;BR /&gt;Ok, since&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/338065"&gt;@cureshot&lt;/a&gt;&amp;nbsp;sees a difference between -qopenmp / -qno-openmp he should watch out for variables that are privatized and reused after parallel regions. With qopenmp the variable has still the same value as before the parallel region with qno-openmp the value is changed.&lt;BR /&gt;&lt;BR /&gt;The additional difference in treating the if clause is maybe not as relevant, but still something one should look for, e.g. one might have coded&lt;BR /&gt;!$omp parallel if(omp_get_max_threads().gt.1)&lt;/P&gt;
&lt;P&gt;Which will make -qopenmp/-qno-openmp equivalaent for IFORT and with IFX you still since the difference between qopenmp/noopenmp for OMP_NUM_THREADS=1&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 13:05:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568711#M170720</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-02-02T13:05:51Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568715#M170721</link>
      <description>&lt;P&gt;&lt;EM&gt;1) How do you disable directives?&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;I simply comment all out.&lt;BR /&gt;&lt;EM&gt;2) How does you compile / link line look like?&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;ifort XXX_v5.f90 -O2 -o XX.out -qopenmp&lt;BR /&gt;&lt;EM&gt;3) Do you have external dependencies? MKL uses TBB or OpenMP depending on the presence of qopenmp.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;No, they are not turned on.&lt;BR /&gt;&lt;EM&gt;4) Do you use openmp simd somewhere in the code? -qopenmp enables -qopenmp-simd (In IFX -qopenmp-simd is enabled at -O1 even without -qopenmp...)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;No.&lt;BR /&gt;&lt;EM&gt;5) Just to be sure, run with your (i) with&amp;nbsp;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;OMP_DISPLAY_ENV=verbose or true&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Thanks for that.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;One small update. I have noticed that I initiated a variable in a routine as Double Precision and when passing it to a function redefined it as real variable. When I fixed that, discrepancies got smaller. (This is still weird to me as to why&amp;nbsp;&lt;SPAN&gt;-qopenmp / -qno-openmp makes a difference.)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 13:15:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568715#M170721</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-02-02T13:15:13Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568717#M170722</link>
      <description>&lt;P&gt;I think it might have been better to describe the nuance as:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For ifort, Private variables of the master thread are located at the same address (or simply are) as outside the scope of the parallel region and for other threads of the team they have their own unique address (on stack or allocated on heap).&lt;/P&gt;&lt;P&gt;Whereas for ifx, private variables, including for the master thread, have their own unique address (on stack or allocated on heap).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can see where this difference is like walking on thin ice. Depending on unforeseen circumstances you either are supported or fall through the ice.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RE:&amp;nbsp;&lt;SPAN&gt;!$omp parallel if(omp_get_max_threads().gt.1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do not think it will make a difference in behavior as main thread in ifx build will have separate location for variable i.&lt;/P&gt;&lt;P&gt;Though this should be verified with a test case.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 13:29:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568717#M170722</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2024-02-02T13:29:39Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568738#M170723</link>
      <description>&lt;P&gt;I suggest comparing -&lt;SPAN class=""&gt;recursive and -norecursive runs WITHOUT -qopenmp&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 14:25:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568738#M170723</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2024-02-02T14:25:51Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568785#M170727</link>
      <description>&lt;P&gt;I mentioned before that the results differing in the two cases strongly suggests an error in your code.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 16:43:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568785#M170727</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2024-02-02T16:43:38Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568842#M170731</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;thank you so much for your support. I believe I have found the source of discrepancies. One of them is that when I&amp;nbsp;&lt;SPAN&gt;initiated a variable in a routine as Double Precision and when passing it to a function I redefined it as real variable. This apparently makes a difference. The second one is related to calling a one particular IMSL routine. I am not sure what's going on there. When I replaced it with alternative IMSL routine, discrepancies disappear.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;best&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 21:31:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568842#M170731</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-02-02T21:31:56Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568859#M170736</link>
      <description>&lt;P&gt;Thanks for the update! Great that you found an coding error. Those kind are tricky to find.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 22:42:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568859#M170736</guid>
      <dc:creator>Barbara_P_Intel</dc:creator>
      <dc:date>2024-02-02T22:42:06Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568908#M170739</link>
      <description>&lt;P&gt;One of my question still remains unanswered. Which run is more reliable, a run with -qopenmp but no OMP directives turned on or without -qopenmp? Running it under Debug mode with VS is a good starting point but not always possible with IFORT on the server. So I am curious what more advanced people would suggest on that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2024 09:35:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568908#M170739</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-02-03T09:35:40Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568909#M170740</link>
      <description>&lt;P&gt;Also, does machine precision change with or without -qopenmp? It seems so but I wanted to confirm and I wanted to find out why?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2024 10:17:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568909#M170740</guid>
      <dc:creator>cureshot</dc:creator>
      <dc:date>2024-02-03T10:17:00Z</dc:date>
    </item>
    <item>
      <title>Re: Qopenmp when not using OpenMP</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568931#M170741</link>
      <description>&lt;P&gt;Using -qopenmp has no effet on machine precision, and if you aren't using any OpenMP directives won't affect the code other than making all procedures recursive-capable.&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2024 15:22:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Qopenmp-when-not-using-OpenMP/m-p/1568931#M170741</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2024-02-03T15:22:21Z</dc:date>
    </item>
  </channel>
</rss>

