<?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 OpenMP performance completely differs between Windows and Linux machines in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152250#M7811</link>
    <description>&lt;P&gt;Hello, I have tested some fortran code, which is composed of calling some subroutine and random number generation, with OpenMP (shown below).&lt;BR /&gt;Taking into account conflict among threads, I carefully distinguished the private and shared variables.&lt;/P&gt;&lt;P&gt;When I run the code on Windows machine (with ifort version 14), the scalability is very good (almost linear).&lt;/P&gt;&lt;P&gt;However, when I run the same code on linux machine (with newer ifort version 15), the performance is very poor.&lt;/P&gt;&lt;P&gt;I wonder why such a big difference arises. Are there something I must care about? (compile option, affinity, openMP environment variable settings, for Linux machines, e.g.?)&lt;/P&gt;&lt;P&gt;I compiled with just "ifort /Qopenmp /Qmkl" for Windows and "ifort -qopenmp -mkl" for Linux.&lt;/P&gt;&lt;P&gt;Wall time &lt;S&gt;&lt;/S&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Windows 10&lt;/STRONG&gt;, Intel Xeon E3-1241 v3 (4 core), Intel Visual Fortran compiler 14.0.3.202&lt;BR /&gt;&lt;STRONG&gt;0.03215956 (1 thread)&lt;BR /&gt;0.01608227 (2 threads)&lt;BR /&gt;0.01093314 (3 threads)&lt;BR /&gt;0.00844201 (4 threads)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Windows 10, Intel Xeon Gold 6140 2CPU (18*2 = 36 cores), Intel Visual Fortran compiler 14.0.3.202&lt;BR /&gt;0.02839129 (1 thread)&lt;BR /&gt;0.02303925 (2 threads)&lt;BR /&gt;0.01156269 (4 threads)&lt;BR /&gt;0.00576751 (8 threads)&lt;BR /&gt;0.00294846 (16 threads)&lt;BR /&gt;0.00150034 (32 threads)&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Linux&lt;/STRONG&gt;(CentOS 6.6), Xeon E5-2695v3 (14 cores), ifort (IFORT) 15.0.3 20150407&lt;BR /&gt;&lt;STRONG&gt;0.02155900 (1 thread)&lt;BR /&gt;0.01605296 (2 threads)&lt;BR /&gt;0.01835489 (4 threads)&lt;BR /&gt;0.02340984 (8 threads)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ st = omp_get_wtime()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp parallel default(none), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp firstprivate(pmax,N_tot,dt,M_rs,K1,iCellNumber1,iCellNumber2,iCellNumber3,l1,l2,l3,dx1,dx2,dx3,redx1,redx2,redx3, &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; knudsen), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp private(sjp,fjp,j,xDp,zetaDp,buf_xD,icoll_event,c_rsp,rsp,dtsub,errcode,int8,c_rs_sum_Mp,iincx,iincy,iincz, &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; irn), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp shared(xD,zetaD,c_rs,rs,streamR,c_rs_sum_M), num_threads(2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do p = 1, pmax&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy the value of shared variables to corresponding private variables (p fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rsp = c_rs(p)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsp(1:M_rs) = rs(1:M_rs,p)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_Mp = c_rs_sum_M(p)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sjp = 1 + (p-1)*(N_tot/pmax) + min((p-1),mod(N_tot,pmax))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fjp = sjp + N_tot/pmax -1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( mod(N_tot,pmax) &amp;gt;= p ) fjp = fjp + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = sjp, fjp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy the value of shared variables to corresponding private variables (j fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xDp(1:3) = xD(1:3,j)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaDp(1:3) = zetaD(1:3,j)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buf_xD(1:3) = xDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !advection&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xDp(1:3) = xDp(1:3) + dt * zetaDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !for each j main computation is carried out, which is composed of a subroutine COMPUTATION and generation of random variables using Intel MKL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; icoll_event = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call COMPUTATION(buf_xD(1),buf_xD(2),buf_xD(3),xDp(1),xDp(2),xDp(3),&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaDp(1),zetaDp(2),zetaDp(3),dt,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iCellNumber1,iCellNumber2,iCellNumber3,l1,l2,l3,dx1,dx2,dx3,redx1,redx2,redx3,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; knudsen(1:iCellNumber1,1:iCellNumber2,1:iCellNumber3),knudsen1,tauObject0,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K1,rsp(c_rsp+1:c_rsp+K1),icoll_event,dtsub,c_rsp)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !generating random variables if necessary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( (M_rs-c_rsp) .le. 2*K1 ) then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !shifting unused random variables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do irn = 1, M_rs-c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsp(irn) = rsp(irn+c_rsp)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !generating random variables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode = vsrnguniform( method, streamR(p), c_rsp, rsp(M_rs-c_rsp+1:M_rs), 0.0e0, 1.0e0 )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !counting the number of random variables generated so far&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int8 = c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_Mp = c_rs_sum_Mp + int8&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !clearing temporal counter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rsp = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(icoll_event==0) exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy back private variables to corresponding adress of shared variables&amp;nbsp; (j fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xD(1:3,j) = xDp(1:3)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaD(1:3,j) = zetaDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy back private variables to corresponding adress of shared variables&amp;nbsp; (p fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs(p) = c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs(1:M_rs,p) = rsp(1:M_rs)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_M(p) = c_rs_sum_Mp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end parallel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ en = omp_get_wtime()&lt;/P&gt;</description>
    <pubDate>Thu, 23 May 2019 11:54:39 GMT</pubDate>
    <dc:creator>Hattori__Masanari</dc:creator>
    <dc:date>2019-05-23T11:54:39Z</dc:date>
    <item>
      <title>OpenMP performance completely differs between Windows and Linux machines</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152250#M7811</link>
      <description>&lt;P&gt;Hello, I have tested some fortran code, which is composed of calling some subroutine and random number generation, with OpenMP (shown below).&lt;BR /&gt;Taking into account conflict among threads, I carefully distinguished the private and shared variables.&lt;/P&gt;&lt;P&gt;When I run the code on Windows machine (with ifort version 14), the scalability is very good (almost linear).&lt;/P&gt;&lt;P&gt;However, when I run the same code on linux machine (with newer ifort version 15), the performance is very poor.&lt;/P&gt;&lt;P&gt;I wonder why such a big difference arises. Are there something I must care about? (compile option, affinity, openMP environment variable settings, for Linux machines, e.g.?)&lt;/P&gt;&lt;P&gt;I compiled with just "ifort /Qopenmp /Qmkl" for Windows and "ifort -qopenmp -mkl" for Linux.&lt;/P&gt;&lt;P&gt;Wall time &lt;S&gt;&lt;/S&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Windows 10&lt;/STRONG&gt;, Intel Xeon E3-1241 v3 (4 core), Intel Visual Fortran compiler 14.0.3.202&lt;BR /&gt;&lt;STRONG&gt;0.03215956 (1 thread)&lt;BR /&gt;0.01608227 (2 threads)&lt;BR /&gt;0.01093314 (3 threads)&lt;BR /&gt;0.00844201 (4 threads)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Windows 10, Intel Xeon Gold 6140 2CPU (18*2 = 36 cores), Intel Visual Fortran compiler 14.0.3.202&lt;BR /&gt;0.02839129 (1 thread)&lt;BR /&gt;0.02303925 (2 threads)&lt;BR /&gt;0.01156269 (4 threads)&lt;BR /&gt;0.00576751 (8 threads)&lt;BR /&gt;0.00294846 (16 threads)&lt;BR /&gt;0.00150034 (32 threads)&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Linux&lt;/STRONG&gt;(CentOS 6.6), Xeon E5-2695v3 (14 cores), ifort (IFORT) 15.0.3 20150407&lt;BR /&gt;&lt;STRONG&gt;0.02155900 (1 thread)&lt;BR /&gt;0.01605296 (2 threads)&lt;BR /&gt;0.01835489 (4 threads)&lt;BR /&gt;0.02340984 (8 threads)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ st = omp_get_wtime()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp parallel default(none), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp firstprivate(pmax,N_tot,dt,M_rs,K1,iCellNumber1,iCellNumber2,iCellNumber3,l1,l2,l3,dx1,dx2,dx3,redx1,redx2,redx3, &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; knudsen), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp private(sjp,fjp,j,xDp,zetaDp,buf_xD,icoll_event,c_rsp,rsp,dtsub,errcode,int8,c_rs_sum_Mp,iincx,iincy,iincz, &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; irn), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp shared(xD,zetaD,c_rs,rs,streamR,c_rs_sum_M), num_threads(2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do p = 1, pmax&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy the value of shared variables to corresponding private variables (p fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rsp = c_rs(p)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsp(1:M_rs) = rs(1:M_rs,p)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_Mp = c_rs_sum_M(p)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sjp = 1 + (p-1)*(N_tot/pmax) + min((p-1),mod(N_tot,pmax))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fjp = sjp + N_tot/pmax -1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( mod(N_tot,pmax) &amp;gt;= p ) fjp = fjp + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = sjp, fjp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy the value of shared variables to corresponding private variables (j fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xDp(1:3) = xD(1:3,j)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaDp(1:3) = zetaD(1:3,j)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buf_xD(1:3) = xDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !advection&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xDp(1:3) = xDp(1:3) + dt * zetaDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !for each j main computation is carried out, which is composed of a subroutine COMPUTATION and generation of random variables using Intel MKL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; icoll_event = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call COMPUTATION(buf_xD(1),buf_xD(2),buf_xD(3),xDp(1),xDp(2),xDp(3),&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaDp(1),zetaDp(2),zetaDp(3),dt,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iCellNumber1,iCellNumber2,iCellNumber3,l1,l2,l3,dx1,dx2,dx3,redx1,redx2,redx3,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; knudsen(1:iCellNumber1,1:iCellNumber2,1:iCellNumber3),knudsen1,tauObject0,&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K1,rsp(c_rsp+1:c_rsp+K1),icoll_event,dtsub,c_rsp)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !generating random variables if necessary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( (M_rs-c_rsp) .le. 2*K1 ) then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !shifting unused random variables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do irn = 1, M_rs-c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsp(irn) = rsp(irn+c_rsp)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !generating random variables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errcode = vsrnguniform( method, streamR(p), c_rsp, rsp(M_rs-c_rsp+1:M_rs), 0.0e0, 1.0e0 )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !counting the number of random variables generated so far&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int8 = c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_Mp = c_rs_sum_Mp + int8&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !clearing temporal counter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rsp = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(icoll_event==0) exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy back private variables to corresponding adress of shared variables&amp;nbsp; (j fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xD(1:3,j) = xDp(1:3)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zetaD(1:3,j) = zetaDp(1:3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !copy back private variables to corresponding adress of shared variables&amp;nbsp; (p fixed)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs(p) = c_rsp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs(1:M_rs,p) = rsp(1:M_rs)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c_rs_sum_M(p) = c_rs_sum_Mp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end parallel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ en = omp_get_wtime()&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2019 11:54:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152250#M7811</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-05-23T11:54:39Z</dc:date>
    </item>
    <item>
      <title>The code you have shown</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152251#M7812</link>
      <description>&lt;P&gt;The code you have shown implies that the parallel region enters only once, and runs for a very short time (10's of ms).&lt;/P&gt;&lt;P&gt;If this is what the test represents, then it is likely that the majority of the time is the OpenMP thread pool instantiation time.&lt;/P&gt;&lt;P&gt;See what happens when you enclose the above code in a loop (say 3 iterations) and record the times for each iteration.&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2019 12:45:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152251#M7812</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2019-05-24T12:45:14Z</dc:date>
    </item>
    <item>
      <title>Dear Mr. Dempsey,</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152252#M7813</link>
      <description>&lt;P&gt;Dear Mr. Dempsey,&lt;/P&gt;&lt;P&gt;Thank you for your kind message.&lt;/P&gt;&lt;P&gt;For the previous time, as for the actual code I ran:&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; (i) it was enclosed by outer loop "n" (corresponding to time step increment) and the wall time was that for the 10-th iteration&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = n + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ st = omp_get_wtime()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp parallel default(none), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp firstprivate(...), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp private(...), &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp shared(...), num_threads(1, 2, 4, 8, 16, or 32)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ........&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$omp end parallel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !$ en = omp_get_wtime()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (n == 10) write(*,*) en - st&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;/P&gt;&lt;P&gt;&amp;nbsp; (ii) it included other several parts I did not show (which I judged negligble)&lt;/P&gt;&lt;P&gt;In this time, I deleted the superfluous parts (ii) and output the first ten iterations (n = 1, 2, ..., 10).&lt;BR /&gt;For n = 1, the result deviates meaningfully from that for other $n$, however,&lt;BR /&gt;for later $n$, the circumstances are more or less the same...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows 10, Intel Xeon Gold 6140 2CPU (18*2 = 36 cores), Intel Visual Fortran compiler 14.0.3.202&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32 threads&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0525&amp;nbsp;&amp;nbsp; 0.0419&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0141&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0364&amp;nbsp;&amp;nbsp; 0.0106&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0027&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0363&amp;nbsp;&amp;nbsp; 0.0091&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0027&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0362&amp;nbsp;&amp;nbsp; 0.0045&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0026&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0362&amp;nbsp;&amp;nbsp; 0.0045&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0026&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0363&amp;nbsp;&amp;nbsp; 0.0045&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0026&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0565&amp;nbsp;&amp;nbsp; 0.0045&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0026&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0371&amp;nbsp;&amp;nbsp; 0.0046&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0014&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0362&amp;nbsp;&amp;nbsp; 0.0046&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0014&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0362&amp;nbsp;&amp;nbsp; 0.0046&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0014&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linux(CentOS 6.6), Xeon E5-2695v3 (14 cores), ifort (IFORT) 15.0.3 20150407&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 threads&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0327&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0175&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0287&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0218&amp;nbsp;&amp;nbsp; 0.0185&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0284&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0138&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0268&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp;&amp;nbsp; 0.0133&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0262&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp;&amp;nbsp; 0.0132&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0266&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0133&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0274&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0218&amp;nbsp;&amp;nbsp; 0.0133&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0265&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0131&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0269&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp;&amp;nbsp; 0.0132&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0258&lt;/P&gt;&lt;P&gt;Sincerely yours,&lt;/P&gt;&lt;P&gt;Masanari HATTORI&lt;/P&gt;</description>
      <pubDate>Mon, 27 May 2019 01:40:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152252#M7813</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-05-27T01:40:09Z</dc:date>
    </item>
    <item>
      <title>On the Linux system, remove</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152253#M7814</link>
      <description>&lt;P&gt;On the Linux system, remove num_threads(...) from the !$omp parallel&lt;BR /&gt;Then following that add:&lt;/P&gt;&lt;P&gt;if(omp_get_thread_num() == 0) print *,omp_get_num_threads()&lt;/P&gt;&lt;P&gt;You might also perform (prior to run)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export KMP_SETTINGS=TRUE&lt;/P&gt;&lt;P&gt;This will print the OpenMP runtime library environment variables.&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2019 14:37:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152253#M7814</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2019-05-28T14:37:12Z</dc:date>
    </item>
    <item>
      <title>Additional information</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152254#M7815</link>
      <description>&lt;P&gt;Additional information&lt;/P&gt;&lt;P&gt;I notice your program uses MKL&lt;/P&gt;&lt;P&gt;You should be aware that if your program uses OpenMP, .and. if you preponderantly make &lt;EM&gt;&lt;STRONG&gt;MKL calls from within parallel regions&lt;/STRONG&gt;&lt;/EM&gt;, that you should link in the &lt;EM&gt;&lt;STRONG&gt;serial version of MKL&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;Conversely, if your program is&lt;EM&gt;&lt;STRONG&gt; serial, or OpenMP parallel with MKL calls from serial regio&lt;/STRONG&gt;&lt;/EM&gt;ns, then you should link in the &lt;STRONG&gt;&lt;EM&gt;parallel version of MKL&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;Also, in the case of OpenMP parallel with MKL calls from serial regions you should experiment with setting KMP_BLOCKTIME=0&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2019 14:45:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152254#M7815</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2019-05-28T14:45:41Z</dc:date>
    </item>
    <item>
      <title>Dear Mr. Dempsey,</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152255#M7816</link>
      <description>&lt;P&gt;Dear Mr. Dempsey,&lt;/P&gt;&lt;P&gt;Thank you for the information.&lt;/P&gt;&lt;P&gt;When I did "export KMP_SETTINGS=TRUE", the folllowing is obtained:&lt;/P&gt;&lt;P&gt;&amp;nbsp; User settings:&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_SETTINGS=TRUE&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Effective settings:&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ABORT_DELAY=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ABORT_IF_NO_IRML=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ADAPTIVE_LOCK_PROPS='1,1024'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ALIGN_ALLOC=64&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ALL_THREADPRIVATE=128&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ALL_THREADS=2147483647&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ASAT_DEC=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ASAT_FAVOR=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ASAT_INC=4&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ASAT_INTERVAL=5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ASAT_TRIGGER=5000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ATOMIC_MODE=2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_BLOCKTIME=200&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_CPUINFO_FILE: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_DETERMINISTIC_REDUCTION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_DUPLICATE_LIB_OK=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FORCE_REDUCTION: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FOREIGN_THREADS_THREADPRIVATE=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_BARRIER='2,2'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_FRAMES=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_FRAMES_MODE=3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_GTID_MODE=3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_HANDLE_SIGNALS=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_HOT_TEAMS_MAX_LEVEL=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_HOT_TEAMS_MODE=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_INIT_AT_FORK=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_INIT_WAIT=2048&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_ITT_PREPARE_DELAY=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_LIBRARY=throughput&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_LOCK_KIND=queuing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_MALLOC_POOL_INCR=1M&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_MONITOR_STACKSIZE: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_NEXT_WAIT=1024&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_NUM_LOCKS_IN_BLOCK=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_PLAIN_BARRIER='2,2'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_PLAIN_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_REDUCTION_BARRIER='1,1'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_REDUCTION_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_SCHEDULE='static,balanced;guided,iterative'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_SETTINGS=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_STACKOFFSET=64&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_STACKPAD=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_STACKSIZE=4M&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_STORAGE_MAP=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_TASKING=2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_TASK_STEALING_CONSTRAINT=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_USE_IRML=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_VERSION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_WARNINGS=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_CANCELLATION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_DISPLAY_ENV=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_DYNAMIC=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_MAX_ACTIVE_LEVELS=2147483647&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_NESTED=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_NUM_THREADS: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_PLACES: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_PROC_BIND='false'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_SCHEDULE='static'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_STACKSIZE=4M&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_THREAD_LIMIT=2147483647&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMP_WAIT_POLICY=PASSIVE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KMP_AFFINITY='noverbose,warnings,respect,granularity=core,duplicates,none'&lt;/P&gt;&lt;P&gt;Removing num_threads(...) from the !$omp parallel and adding "if(omp_get_thread_num() == 0) print *,omp_get_num_threads()",&lt;BR /&gt;the number 28 was output.&lt;/P&gt;&lt;P&gt;After I tried KMP_BLOCKTIME=0, only KMP_ASAT_INTERVAL changed from 5 to 1000 and the value of other variables were the same.&lt;/P&gt;&lt;P&gt;I examined serial and parallel versions of MKL (-mkl=sequential and -mkl=parallel).&lt;BR /&gt;In addition, I examined static linking of MKL (-static-intel), since I found that the default is dynamic link in Linux but static in Windows.&lt;BR /&gt;In total, I tried 2*2 = 4 compile options, unfortunately however, the situation does not still improve so much...&lt;/P&gt;&lt;P&gt;Linux(CentOS 6.6), Xeon E5-2695v3 (14 cores), ifort (IFORT) 15.0.3 20150407&lt;/P&gt;&lt;P&gt;ifort -qopenmp -mkl=sequential -static-intel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 threads (I confirmed the corresponding numbers 1, 2, or 4 were returned by print *,omp_get_num_threads())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0325&amp;nbsp; 0.0225&amp;nbsp; 0.0285&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp; 0.0176&amp;nbsp; 0.0258&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0218&amp;nbsp; 0.0177&amp;nbsp; 0.0247&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0172&amp;nbsp; 0.0267&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0136&amp;nbsp; 0.0274&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0125&amp;nbsp; 0.0284&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp; 0.0124&amp;nbsp; 0.0274&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp; 0.0124&amp;nbsp; 0.0266&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0125&amp;nbsp; 0.0277&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0123&amp;nbsp; 0.0280&lt;/P&gt;&lt;P&gt;ifort -qopenmp -mkl=parallel -static-intel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 threads&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0331&amp;nbsp; 0.0230&amp;nbsp; 0.0238&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0217&amp;nbsp; 0.0180&amp;nbsp; 0.0209&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0218&amp;nbsp; 0.0179&amp;nbsp; 0.0223&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0176&amp;nbsp; 0.0208&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0146&amp;nbsp; 0.0239&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0168&amp;nbsp; 0.0221&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0139&amp;nbsp; 0.0220&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0136&amp;nbsp; 0.0259&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0136&amp;nbsp; 0.0231&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0136&amp;nbsp; 0.0249&lt;/P&gt;&lt;P&gt;ifort -qopenmp -mkl=sequential&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 threads&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0384&amp;nbsp; 0.0224&amp;nbsp; 0.0265&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0310&amp;nbsp; 0.0175&amp;nbsp; 0.0216&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0310&amp;nbsp; 0.0175&amp;nbsp; 0.0244&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0265&amp;nbsp; 0.0170&amp;nbsp; 0.0235&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0124&amp;nbsp; 0.0232&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0120&amp;nbsp; 0.0257&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0122&amp;nbsp; 0.0262&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0121&amp;nbsp; 0.0253&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0121&amp;nbsp; 0.0218&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0126&amp;nbsp; 0.0246&lt;/P&gt;&lt;P&gt;ifort -qopenmp -mkl=parallel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 threads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 threads&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0208&amp;nbsp; 0.0194&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0171&amp;nbsp; 0.0174&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0216&amp;nbsp; 0.0168&amp;nbsp; 0.0169&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0170&amp;nbsp; 0.0165&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0168&amp;nbsp; 0.0171&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0161&amp;nbsp; 0.0193&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0121&amp;nbsp; 0.0212&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0215&amp;nbsp; 0.0120&amp;nbsp; 0.0231&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=9&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0120&amp;nbsp; 0.0241&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=10&amp;nbsp;&amp;nbsp; 0.0214&amp;nbsp; 0.0120&amp;nbsp; 0.0232&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Sincerely yours,&lt;/P&gt;&lt;P&gt;Masanari HATTORI&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 05:32:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152255#M7816</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-05-30T05:32:10Z</dc:date>
    </item>
    <item>
      <title>When I printed KMP_SETTINGS</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152256#M7817</link>
      <description>&lt;P&gt;When I printed KMP_SETTINGS on Windows machine, the following is obtained:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; KMP_ABORT_DELAY=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ABORT_IF_NO_IRML=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ADAPTIVE_LOCK_PROPS='1,1024'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ALIGN_ALLOC=64&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ALL_THREADPRIVATE=144&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ALL_THREADS=32768&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ASAT_DEC=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ASAT_FAVOR=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ASAT_INC=4&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ASAT_INTERVAL=5&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ASAT_TRIGGER=5000&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ATOMIC_MODE=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_BLOCKTIME=200&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_CPUINFO_FILE: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_DETERMINISTIC_REDUCTION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_DUPLICATE_LIB_OK=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FORCE_REDUCTION: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FOREIGN_THREADS_THREADPRIVATE=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_BARRIER='2,2'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_FRAMES=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_FORKJOIN_FRAMES_MODE=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_GTID_MODE=2&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_HANDLE_SIGNALS=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_INIT_AT_FORK=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_INIT_WAIT=2048&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_ITT_PREPARE_DELAY=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_LIBRARY=throughput&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_LOCK_KIND=queuing&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_MALLOC_POOL_INCR=1M&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_MONITOR_STACKSIZE: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_NEXT_WAIT=1024&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_NUM_LOCKS_IN_BLOCK=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_PLAIN_BARRIER='2,2'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_PLAIN_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_REDUCTION_BARRIER='1,1'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_REDUCTION_BARRIER_PATTERN='hyper,hyper'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_SCHEDULE='static,balanced;guided,iterative'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_SETTINGS=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_STACKOFFSET=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_STACKSIZE=4M&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_STORAGE_MAP=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_TASKING=2&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_TASK_STEALING_CONSTRAINT=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_USE_IRML=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_VERSION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_WARNINGS=true&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_CANCELLATION=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_DISPLAY_ENV=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_DYNAMIC=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_MAX_ACTIVE_LEVELS=2147483647&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_NESTED=false&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_NUM_THREADS: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_PLACES: value is not defined&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_PROC_BIND='false'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_SCHEDULE='static'&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_STACKSIZE=4M&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_THREAD_LIMIT=32768&lt;BR /&gt;&amp;nbsp;&amp;nbsp; OMP_WAIT_POLICY=PASSIVE&lt;BR /&gt;&amp;nbsp;&amp;nbsp; KMP_AFFINITY='noverbose,warnings,respect,granularity=core,duplicates,none'&lt;/P&gt;&lt;P&gt;Sincerely yours,&lt;/P&gt;&lt;P&gt;Masanari HATTORI&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 05:57:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152256#M7817</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-05-30T05:57:33Z</dc:date>
    </item>
    <item>
      <title>I've been using CentOS 7.2</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152257#M7818</link>
      <description>&lt;P&gt;I've been using CentOS 7.2 for a few years now on Intel Xeon E5-2620v2 and Intel Xeon Phi KNL 5200 and haven't seen such an issue. Perhaps this may be related to you using CentOS 6.6.&lt;/P&gt;&lt;P&gt;One additional variable that came up last year was a customer of mine was testing a working application on a new platform (Xeon Gold system at vendors location) and reported a dramatic decrease in performance. After some investigation, it was found that the loaner test system was running within a virtualized system. Is your CentOS 6.6 running inside a virtual system? IOW under Hypervisor&lt;/P&gt;&lt;P&gt;Have you been able to use VTune on the CentOS system? (well both systems)&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 11:55:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152257#M7818</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2019-05-30T11:55:24Z</dc:date>
    </item>
    <item>
      <title>Dear Mr. Dempsey,</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152258#M7819</link>
      <description>&lt;P&gt;Dear Mr. Dempsey,&lt;/P&gt;&lt;P&gt;Thank you for your message.&lt;/P&gt;&lt;P&gt;Our CentOS is not installed on virtual environment but installed on usual hardware.&lt;BR /&gt;As for the Vtune, I have not used it so far...&lt;/P&gt;&lt;P&gt;Now I tried another Linux machine (24core) with CentOS 7.4, though some other job is running and uses 100% CPU resources on the machine&lt;BR /&gt;(this is the reason why I tested only on one Linux machine so far).&lt;BR /&gt;But according to your information about OS, I decided to do test on it.&lt;/P&gt;&lt;P&gt;Up to 16threads, the performance is good (although I can not be confident a little bit since the result is the one with other job being simultaneously running):&lt;BR /&gt;So also for Linux no problem if the OS is sufficiently new??&lt;/P&gt;&lt;P&gt;Linux(CentOS 7.4) Xeon Gold 5118 2.3GHz 2CPU (24core)&lt;/P&gt;&lt;P&gt;1thread 2threads 4threads 8threads 16threads 24threads&lt;BR /&gt;0.0578&amp;nbsp; 0.0279&amp;nbsp;&amp;nbsp; 0.0226&amp;nbsp;&amp;nbsp; 0.0086&amp;nbsp;&amp;nbsp; 0.0076&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0331&lt;BR /&gt;0.0478&amp;nbsp; 0.0267&amp;nbsp;&amp;nbsp; 0.0136&amp;nbsp;&amp;nbsp; 0.0069&amp;nbsp;&amp;nbsp; 0.0027&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0050&lt;BR /&gt;0.0583&amp;nbsp; 0.0268&amp;nbsp;&amp;nbsp; 0.0138&amp;nbsp;&amp;nbsp; 0.0071&amp;nbsp;&amp;nbsp; 0.0035&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0052&lt;BR /&gt;0.0561&amp;nbsp; 0.0266&amp;nbsp;&amp;nbsp; 0.0133&amp;nbsp;&amp;nbsp; 0.0069&amp;nbsp;&amp;nbsp; 0.0035&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0049&lt;BR /&gt;0.0476&amp;nbsp; 0.0264&amp;nbsp;&amp;nbsp; 0.0135&amp;nbsp;&amp;nbsp; 0.0069&amp;nbsp;&amp;nbsp; 0.0036&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0042&lt;BR /&gt;0.0578&amp;nbsp; 0.0266&amp;nbsp;&amp;nbsp; 0.0137&amp;nbsp;&amp;nbsp; 0.0069&amp;nbsp;&amp;nbsp; 0.0035&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0049&lt;BR /&gt;0.0475&amp;nbsp; 0.0268&amp;nbsp;&amp;nbsp; 0.0134&amp;nbsp;&amp;nbsp; 0.0071&amp;nbsp;&amp;nbsp; 0.0036&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0047&lt;BR /&gt;0.0587&amp;nbsp; 0.0267&amp;nbsp;&amp;nbsp; 0.0139&amp;nbsp;&amp;nbsp; 0.0072&amp;nbsp;&amp;nbsp; 0.0036&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0043&lt;BR /&gt;0.0475&amp;nbsp; 0.0268&amp;nbsp;&amp;nbsp; 0.0132&amp;nbsp;&amp;nbsp; 0.0070&amp;nbsp;&amp;nbsp; 0.0035&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0043&lt;BR /&gt;0.0577&amp;nbsp; 0.0266&amp;nbsp;&amp;nbsp; 0.0066&amp;nbsp;&amp;nbsp; 0.0070&amp;nbsp;&amp;nbsp; 0.0035&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0044&lt;/P&gt;&lt;P&gt;I experienced in past that for my program, which uses SFMT19937 and vslskipaheadstream,&lt;BR /&gt;the intel compiler version newer than 2014 (2014 is OK but 2013 produces error) is necessary. (since these functions are published around 2014?)&lt;/P&gt;&lt;P&gt;The compliler on the former Linux machine I showed is not so old (version 2015).&lt;BR /&gt;Do you think the results imply not only the compiler but also the OS should be enough new for the good perfomance?&lt;BR /&gt;(CentOS 6.6 was released on Oct. 2014 and 7.4 on Aug. 2017)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sincerely yours,&lt;/P&gt;&lt;P&gt;Masanari HATTORI&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 13:23:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152258#M7819</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-05-30T13:23:15Z</dc:date>
    </item>
    <item>
      <title>The optimization performance</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152259#M7820</link>
      <description>&lt;P&gt;The optimization performance from 2015 to 2019 should be significant. This is due to architectural differences (read instruction set) between Xeon Scalable (AVX512)&amp;nbsp;and Xeon En series (AVX2). Acquiring a license for 2019 update... provides you access to earlier versions as well e.g. 2017... I do suggest that you run verification test of your software using different optimization levels, different instruction sets, and different versions (should you run into problems with latest version, newest instruction set, highest optimization level).&lt;/P&gt;&lt;P&gt;The scaling curve you presented, maxing out&amp;nbsp;at 16 threads (actual number unknown), may be more of an issue of number of memory channels (2x6=12), or cache (2x16.5=33MB).&lt;/P&gt;&lt;P&gt;Note, CentOS 6.6 predates AVX512. Xeon Gold may be problematic (or incomplete support) on CentOS 6.6.&lt;/P&gt;&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 16:51:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152259#M7820</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2019-05-30T16:51:25Z</dc:date>
    </item>
    <item>
      <title>Dear Mr. Dempsey,</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152260#M7821</link>
      <description>&lt;P&gt;Dear Mr. Dempsey,&lt;/P&gt;&lt;P&gt;Understood. Thank you for your information and sparing your time for me.&lt;/P&gt;&lt;P&gt;Sincerely yours,&lt;/P&gt;&lt;P&gt;Masanari HATTORI&lt;/P&gt;</description>
      <pubDate>Sun, 02 Jun 2019 08:37:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/OpenMP-performance-completely-differs-between-Windows-and-Linux/m-p/1152260#M7821</guid>
      <dc:creator>Hattori__Masanari</dc:creator>
      <dc:date>2019-06-02T08:37:37Z</dc:date>
    </item>
  </channel>
</rss>

