<?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 You say &amp;quot;ran a very simple in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050789#M49862</link>
    <description>&lt;P&gt;You say "ran a very simple benchmark code on two Xeon Phi cards with different MPSS versions". The way I understand it is that you have two different servers, one with MPSS 3.3 and the other with MPSS 3.1.6, and you are comparing performance on one server to the performance on the other. If that is correct, you have to investigate possible overheating issues. If you did not have enough cooling in one of the systems, it would throttle down the coprocessor.&lt;/P&gt;</description>
    <pubDate>Mon, 15 Sep 2014 22:06:18 GMT</pubDate>
    <dc:creator>Andrey_Vladimirov</dc:creator>
    <dc:date>2014-09-15T22:06:18Z</dc:date>
    <item>
      <title>performance difference in different MPSS versions</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050786#M49859</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I ran a very simple benchmark code on two Xeon Phi cards with different MPSS versions and got different performance results in terms of FLOPS. Briefly, program running on mpss-3.1.2 got 1984 GFLOP/s for single precision floating point numbers, which is 98.2% of the peak performance; however, the same program running on mpss-3.3 only got 1580 GFLOP/s. I have tried several times to make sure I didn't do anything incorrectly.&lt;/P&gt;

&lt;P&gt;Anybody has any ideas about the reason of this performance difference?&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;

&lt;P&gt;The benchmark code is as following:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;sys/time.h&amp;gt;
#include &amp;lt;omp.h&amp;gt;

double dtime()
{
  double tseconds=0.0;
  struct timeval mytime;
  gettimeofday(&amp;amp;mytime, (struct timezone*)0);
  tseconds=(double)(mytime.tv_sec+mytime.tv_usec*1.0e-6);
  return tseconds;
}

#define FLOPS_ARRAY_SIZE 1024*1024
#define MAXFLOPS_ITERS 100000000
#define LOOP_COUNT 128
#define FLOPSPERCALC 2
float fa[FLOPS_ARRAY_SIZE] __attribute__ ((align(64)));
float fb[FLOPS_ARRAY_SIZE] __attribute__ ((align(64)));

int main(int argc, char *argv[])
{
  int numthreads;
  int i,j,k;
  double tstart, tstop, ttime;
  double gflops=0.0;
  float a=1.0000001;
  
  printf("Initializing\n");
  #pragma omp parallel for
  for (i=0; i&amp;lt;FLOPS_ARRAY_SIZE; i++)
  {
    if (i==0) numthreads = omp_get_num_threads();
    fa&lt;I&gt;=(float)i+0.1;
    fb&lt;I&gt;=(float)i+0.2;
  }
  printf("Starting Compute on %d threads\n", numthreads);

  tstart=dtime();
  #pragma omp parallel for private(j,k)
  for (i=0; i&amp;lt;numthreads; i++)
  {
    int offset = i*LOOP_COUNT;
    for (j=0; j&amp;lt;MAXFLOPS_ITERS; j++)
    {
      for (k=0; k&amp;lt;LOOP_COUNT; k++)
      {
        fa[k+offset]=a*fa[k+offset]+fb[k+offset];
      }
    }
  }
  tstop=dtime();
  gflops = (double)(1.0e-9*LOOP_COUNT*numthreads*MAXFLOPS_ITERS*FLOPSPERCALC);

  ttime=tstop-tstart;

  if (ttime&amp;gt;0.0)
  {
    printf("GFlops = %5.3lf, Secs = %5.3lf, GFlops per sec = %5.3lf\n",
            gflops, ttime, gflops/ttime);
  }
  return 0;
}&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 15:59:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050786#M49859</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-15T15:59:29Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050787#M49860</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I ran your program in my system (SUSE 11.2) equipped with two coprocessors but I didn't not see the problem you reported.&lt;/P&gt;

&lt;P&gt;On this same system, I tried two different versions of MPSS: MPSS 3.3 and 3.1.6. For each MPSS version, I compiled your program for coprocessor using two versions of compiler: Intel Compiler 2013 Service pack 1, update 2 and Intel Compiler 2015.&lt;/P&gt;

&lt;P&gt;Finnaly, I ran the binary in each coprocessor separately. I always get a consistent result in the range of 1,745-1,750 GFlops/sec.&lt;/P&gt;

&lt;P&gt;What OS are you using? What compiler version are you using, and what coprocessor type do you have?&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 21:13:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050787#M49860</guid>
      <dc:creator>Loc_N_Intel</dc:creator>
      <dc:date>2014-09-15T21:13:03Z</dc:date>
    </item>
    <item>
      <title>Quote:loc-nguyen (Intel)</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050788#M49861</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;loc-nguyen (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I ran your program in my system (SUSE 11.2) equipped with two coprocessors but I didn't not see the problem you reported.&lt;/P&gt;

&lt;P&gt;On this same system, I tried two different versions of MPSS: MPSS 3.3 and 3.1.6. For each MPSS version, I compiled your program for coprocessor using two versions of compiler: Intel Compiler 2013 Service pack 1, update 2 and Intel Compiler 2015.&lt;/P&gt;

&lt;P&gt;Finnaly, I ran the binary in each coprocessor separately. I always get a consistent result in the range of 1,745-1,750 GFlops/sec.&lt;/P&gt;

&lt;P&gt;What OS are you using? What compiler version are you using, and what coprocessor type do you have?&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks for trying out! We are running CentOS 6.3 on the host,&amp;nbsp;Intel(R) C++ Compiler XE 14.0. The coprocessor is Xeon Phi 5110P.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 21:20:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050788#M49861</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-15T21:20:41Z</dc:date>
    </item>
    <item>
      <title>You say "ran a very simple</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050789#M49862</link>
      <description>&lt;P&gt;You say "ran a very simple benchmark code on two Xeon Phi cards with different MPSS versions". The way I understand it is that you have two different servers, one with MPSS 3.3 and the other with MPSS 3.1.6, and you are comparing performance on one server to the performance on the other. If that is correct, you have to investigate possible overheating issues. If you did not have enough cooling in one of the systems, it would throttle down the coprocessor.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 22:06:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050789#M49862</guid>
      <dc:creator>Andrey_Vladimirov</dc:creator>
      <dc:date>2014-09-15T22:06:18Z</dc:date>
    </item>
    <item>
      <title>Quote:Andrey Vladimirov wrote</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050790#M49863</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Andrey Vladimirov wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;You say "ran a very simple benchmark code on two Xeon Phi cards with different MPSS versions". The way I understand it is that you have two different servers, one with MPSS 3.3 and the other with MPSS 3.1.6, and you are comparing performance on one server to the performance on the other. If that is correct, you have to investigate possible overheating issues. If you did not have enough cooling in one of the systems, it would throttle down the coprocessor.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Yes, it is what I meant. And when I check the temperature of the two servers, I did see some difference. The one with better performance was at ~52 C when running, while the other one (with worse performance) was at ~63 C. Do you think the latter one is somehow overheating? We are using the same cooling system in the two servers and they are in the same server room. I don't know why the temperature difference exists.&lt;/P&gt;

&lt;P&gt;Anyway, thanks for pointing out the overheating issue. We will investigate and try to solve it along this direction.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 22:35:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050790#M49863</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-15T22:35:59Z</dc:date>
    </item>
    <item>
      <title>Quote:YW wrote:</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050791#M49864</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;YW wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Quote:&lt;/STRONG&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;&lt;EM&gt;Andrey Vladimirov&lt;/EM&gt; wrote:

	&lt;P&gt;You say "ran a very simple benchmark code on two Xeon Phi cards with different MPSS versions". The way I understand it is that you have two different servers, one with MPSS 3.3 and the other with MPSS 3.1.6, and you are comparing performance on one server to the performance on the other. If that is correct, you have to investigate possible overheating issues. If you did not have enough cooling in one of the systems, it would throttle down the coprocessor.&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Yes, it is what I meant. And when I check the temperature of the two servers, I did see some difference. The one with better performance was at ~52 C when running, while the other one (with worse performance) was at ~63 C. Do you think the latter one is somehow overheating? We are using the same cooling system in the two servers and they are in the same server room. I don't know why the temperature difference exists.&lt;/P&gt;

&lt;P&gt;Anyway, thanks for pointing out the overheating issue. We will investigate and try to solve it along this direction.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;BTW, I just checked our cluster and noticed that all Xeon Phi cards installing MPSS-3.3 are at higher degrees but only the two Xeon Phi cards installing MPSS-3.1.2 (due to historical reasons) are cooler. This makes me guess that if MPSS-3.3 causes the overheating issue?&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 22:40:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050791#M49864</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-15T22:40:02Z</dc:date>
    </item>
    <item>
      <title>Back to the orignal question:</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050792#M49865</link>
      <description>&lt;P&gt;Back to the orignal question: you compared the performance on two systems, which seem have many different parameters, including the MPSS version. If you want to really check whether MPSS affects the performance, the obvious thing to do is to upgrade MPSS on the machine with MPSS 3.1.2.&lt;/P&gt;

&lt;P&gt;However, my guess is that the performance difference is not due to MPSS, but due to other factors. According to your results, overheating is not one of them: 63 C is pretty cool. Coprocessors start throttling at 90-100 C. Other factors that may contribute to performance difference are board stepping (use "micinfo -group Board" to check), power management features (use "micsmc --pwrstatus") or flash version (use "miccheck").&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2014 23:10:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050792#M49865</guid>
      <dc:creator>Andrey_Vladimirov</dc:creator>
      <dc:date>2014-09-15T23:10:42Z</dc:date>
    </item>
    <item>
      <title>Quote:Andrey Vladimirov wrote</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050793#M49866</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Andrey Vladimirov wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Back to the orignal question: you compared the performance on two systems, which seem have many different parameters, including the MPSS version. If you want to really check whether MPSS affects the performance, the obvious thing to do is to upgrade MPSS on the machine with MPSS 3.1.2.&lt;/P&gt;

&lt;P&gt;However, my guess is that the performance difference is not due to MPSS, but due to other factors. According to your results, overheating is not one of them: 63 C is pretty cool. Coprocessors start throttling at 90-100 C. Other factors that may contribute to performance difference are board stepping (use "micinfo -group Board" to check), power management features (use "micsmc --pwrstatus") or flash version (use "miccheck").&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks for the information of overheating.&lt;/P&gt;

&lt;P&gt;I compared the following parameters as you suggested:&lt;/P&gt;

&lt;P&gt;board info (identical between the two)&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Board&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Vendor ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 0x8086&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Device ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 0x2250&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Subsystem ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 0x2500&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Stepping ID &amp;nbsp;: 3&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PCIe Width &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : x16&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PCIe Speed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 5 GT/s&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PCIe Max payload size &amp;nbsp; &amp;nbsp;: 256 bytes&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PCIe Max read req size &amp;nbsp; : 512 bytes&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Model &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 0x01&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Model Ext &amp;nbsp; &amp;nbsp;: 0x00&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Type &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 0x00&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Family &amp;nbsp; &amp;nbsp; &amp;nbsp; : 0x0b&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Family Ext &amp;nbsp; : 0x00&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Coprocessor Stepping &amp;nbsp; &amp;nbsp; : B1&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Board SKU &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: B1PRQ-5110P/5120D&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ECC Mode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Enabled&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SMC HW Revision &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Product 225W Passive CS&lt;/P&gt;

&lt;P&gt;power management feature (has difference)&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;mic0 (pwrstatus):&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp;cpufreq power management feature: .. enabled&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;corec6 power management feature: ... &lt;STRONG&gt;disabled for worse performance one and enabled for better one&lt;/STRONG&gt;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;pc3 power management feature: ...... enabled&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;pc6 power management feature: ...... &lt;STRONG&gt;&lt;SPAN style="line-height: 19.5120010375977px;"&gt;disabled for worse performance one and enabled for better one&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.5120010375977px;"&gt;and flash version (identical between the two:&amp;nbsp;&lt;/SPAN&gt;2.1.02.0390, miccheck both returns all passes and status: OK).&lt;/P&gt;

&lt;P&gt;any ideas?&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 00:22:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050793#M49866</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-16T00:22:39Z</dc:date>
    </item>
    <item>
      <title>Corec6 and pc6 are "deep</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050794#M49867</link>
      <description>&lt;P&gt;Corec6 and pc6 are "deep sleep" states. These states are activated after a few seconds of idling. If c6/pc6 were the culprit, I would expect the opposite effect from what you see: I would expect worse performance when c6/pc6 are enabled, so perhaps these settings are not to blame. If you want to experiment and to enable all power management features (which is the default setting), run "micsmc --pwrenable all" and "service mpss restart".&lt;/P&gt;

&lt;P&gt;Here is a great source of information on power management states: &lt;A href="https://software.intel.com/en-us/articles/power-management-states-p-states-c-states-and-package-c-states" target="_blank"&gt;https://software.intel.com/en-us/articles/power-management-states-p-states-c-states-and-package-c-states&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Please keep posting, it would be really great to find out why you see this difference in performance.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 16:42:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050794#M49867</guid>
      <dc:creator>Andrey_Vladimirov</dc:creator>
      <dc:date>2014-09-16T16:42:06Z</dc:date>
    </item>
    <item>
      <title>You are observing a 25%</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050795#M49868</link>
      <description>&lt;P&gt;You are observing a 25% difference in runtime.&lt;/P&gt;

&lt;P&gt;I noticed ~10% difference in runtime based upon the memory position of the top of the inner loop (my code, not yours). IOW the number of cache lines and/or even/odd start of loop. This happened on the same executable image run with the same MPSS version, on same system,&amp;nbsp;however the difference being one run on Windows host, the other on Linux host. The code being the same executable, and system being the same lead me to assume code placement. When inserting a diagnostic printf to display addresses caused the relative performances to swap between the Windows and Linux system. IOW printf shifted code position and affected the performance (one better one worse).&lt;/P&gt;

&lt;P&gt;Can you VTune each and observe the placement of the inner loop?&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 18:30:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050795#M49868</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2014-09-16T18:30:06Z</dc:date>
    </item>
    <item>
      <title>Quote:jimdempseyatthecove</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050796#M49869</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;jimdempseyatthecove wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;You are observing a 25% difference in runtime.&lt;/P&gt;

&lt;P&gt;I noticed ~10% difference in runtime based upon the memory position of the top of the inner loop (my code, not yours). IOW the number of cache lines and/or even/odd start of loop. This happened on the same executable image run with the same MPSS version, on same system,&amp;nbsp;however the difference being one run on Windows host, the other on Linux host. The code being the same executable, and system being the same lead me to assume code placement. When inserting a diagnostic printf to display addresses caused the relative performances to swap between the Windows and Linux system. IOW printf shifted code position and affected the performance (one better one worse).&lt;/P&gt;

&lt;P&gt;Can you VTune each and observe the placement of the inner loop?&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Which analysis should I do in VTune to observe the placement of the inner loop? Also, maybe this is a silly question, but what does IOW stand for?&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 20:09:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050796#M49869</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-16T20:09:11Z</dc:date>
    </item>
    <item>
      <title>Do any type of analysis, find</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050797#M49870</link>
      <description>&lt;P&gt;Do any type of analysis, find the hot spot (inner loop), highlight the source line, then show disassembly.&lt;/P&gt;

&lt;P&gt;You should be able to see the address of where the inner loop starts through where it ends.&lt;/P&gt;

&lt;P&gt;On known large loops, the compiler will insert padd's and or branch to cache line align the&amp;nbsp;loops.&lt;/P&gt;

&lt;P&gt;Your inner loop is known to be of iteration of 128. Vector width of 16 yields an iteration count of 8. It could be that the compiler might not align the loop due to the padd/branch exceeding the presumed payback with such small iteration count.&lt;/P&gt;

&lt;P&gt;However, it might be useful to know&amp;nbsp;the cause of the slowdown.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 21:53:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050797#M49870</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2014-09-16T21:53:47Z</dc:date>
    </item>
    <item>
      <title>I've been following this</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050798#M49871</link>
      <description>&lt;P&gt;I've been following this thread as I'm always keen on a&amp;nbsp; "free" 25% performance boost ;)&lt;/P&gt;

&lt;P&gt;On my mpss 3.3 install with dual Xeon Phi 5110P's&amp;nbsp; I'd get a consistent value of 1760 GFLOPS.&lt;/P&gt;

&lt;P&gt;Then I removed all mpss 3.3 rpms and reinstalled the mpss 3.1.2 rpms, reset the config and ran the same benchmark again.&lt;/P&gt;

&lt;P&gt;Same result: still 1760 GFLOPS.&lt;/P&gt;

&lt;P&gt;Now for the weird part: I was fiddling around with the code, recompiled it, changed the code back to the original code, recompiled it and reran the test: I now ALSO get 1980 GFLOPS for both cards!&lt;/P&gt;

&lt;P&gt;It seems related to the compilation flags - using -O3 makes performance jump to 1980 GFLOPS. How was the code compiled on YW's box?&lt;/P&gt;

&lt;P&gt;I can more or less reproduce the numbers, will now revert to mpss 3.3 to see what that does for -O3 performance.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;$ micinfo  
MicInfo Utility Log

Created Wed Sep 17 01:37:55 2014


	System Info
		HOST OS			: Linux
		OS Version		: 2.6.32-431.23.3.el6.x86_64
		Driver Version		: 3.1.2-1
		MPSS Version		: 3.1.2
		Host Physical Memory	: 65943 MB

Device No: 0, Device Name: mic0

	Version
		Flash Version 		 : 2.1.02.0390
		SMC Firmware Version	 : 1.16.5078
		SMC Boot Loader Version	 : 1.8.4326
		uOS Version 		 : 2.6.38.8+mpss3.1.2
		Device Serial Number 	 : ADKC25204588

	Board
		Vendor ID 		 : 0x8086
		Device ID 		 : 0x2250
		Subsystem ID 		 : 0x2500
		Coprocessor Stepping ID	 : 3
		PCIe Width 		 : x16
		PCIe Speed 		 : 5 GT/s
		PCIe Max payload size	 : 256 bytes
		PCIe Max read req size	 : 512 bytes
		Coprocessor Model	 : 0x01
		Coprocessor Model Ext	 : 0x00
		Coprocessor Type	 : 0x00
		Coprocessor Family	 : 0x0b
		Coprocessor Family Ext	 : 0x00
		Coprocessor Stepping 	 : B1
		Board SKU 		 : B1PRQ-5110P/5120D
		ECC Mode 		 : Enabled
		SMC HW Revision 	 : Product 225W Passive CS

	Cores
		Total No of Active Cores : 60
		Voltage 		 : 1030000 uV
		Frequency		 : 1052631 kHz

	Thermal
		Fan Speed Control 	 : N/A
		Fan RPM 		 : N/A
		Fan PWM 		 : N/A
		Die Temp		 : 37 C

	GDDR
		GDDR Vendor		 : Elpida
		GDDR Version		 : 0x1
		GDDR Density		 : 2048 Mb
		GDDR Size		 : 7936 MB
		GDDR Technology		 : GDDR5 
		GDDR Speed		 : 5.000000 GT/s 
		GDDR Frequency		 : 2500000 kHz
		GDDR Voltage		 : 1501000 uV
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2014 23:37:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050798#M49871</guid>
      <dc:creator>JJK</dc:creator>
      <dc:date>2014-09-16T23:37:00Z</dc:date>
    </item>
    <item>
      <title>@Jan Just K.</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050799#M49872</link>
      <description>&lt;P&gt;@Jan Just K.&lt;/P&gt;

&lt;P&gt;Please keep me posted, what could you get in MPSS-3.3 using -O3?&lt;/P&gt;

&lt;P&gt;I used -O3 for both MPSS-3.1.2 and MPSS-3.3 in my case.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 14:25:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050799#M49872</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-17T14:25:24Z</dc:date>
    </item>
    <item>
      <title>Quote:jimdempseyatthecove</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050800#M49873</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;jimdempseyatthecove wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Do any type of analysis, find the hot spot (inner loop), highlight the source line, then show disassembly.&lt;/P&gt;

&lt;P&gt;You should be able to see the address of where the inner loop starts through where it ends.&lt;/P&gt;

&lt;P&gt;On known large loops, the compiler will insert padd's and or branch to cache line align the&amp;nbsp;loops.&lt;/P&gt;

&lt;P&gt;Your inner loop is known to be of iteration of 128. Vector width of 16 yields an iteration count of 8. It could be that the compiler might not align the loop due to the padd/branch exceeding the presumed payback with such small iteration count.&lt;/P&gt;

&lt;P&gt;However, it might be useful to know&amp;nbsp;the cause of the slowdown.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;VTune gets the same address for both MPSS-3.1.2 and 3.3. The inner loop starts at 0x400f60, ends at 0x400fca&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 14:50:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050800#M49873</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-17T14:50:22Z</dc:date>
    </item>
    <item>
      <title>Could you tell were fa and fb</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050801#M49874</link>
      <description>&lt;P&gt;Could you tell were fa and fb resided in both runs?&lt;/P&gt;

&lt;P&gt;In reading some of the other threads on this forum you might be experiencing a cache interaction issue. Your array sizes are 4MB. Depending on the page size, location of arrays (and start order of threads) you may be experiencing false sharing. VTune should be able to tell you if you are experiencing false sharing issues (though when measuring it will affect the behavior).&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 15:27:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050801#M49874</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2014-09-17T15:27:39Z</dc:date>
    </item>
    <item>
      <title>OK, I reinstalled mpss 3.3</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050802#M49875</link>
      <description>&lt;P&gt;OK, I reinstalled mpss 3.3 again and reran the test:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;$ . /opt/intel/bin/compilervars.sh intel64

$ icc  -openmp -mmic -O3 -o benchmark1.mic benchmark1.c

$ ssh mic0 $PWD/benchmark1.mic
Initializing
Starting Compute on 240 threads
GFlops = 6144.000, Secs = 3.089, GFlops per sec = 1989.262

&lt;/PRE&gt;

&lt;P&gt;so performance is the same with -O3. With just "-mmic" I achieve ~ 1760 GFLOPS.&lt;/P&gt;

&lt;P&gt;The question now is: why does your Xeon Phi perform *slower* for this test? I'm running on CentOS 6.5&lt;/P&gt;

&lt;P&gt;It would be great if someone else can confirm the -O3 results.&lt;/P&gt;

&lt;P&gt;@YW: can you send me your binary so that I can test it on my system here? we cannot yet rule out a compiler issue.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 15:31:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050802#M49875</guid>
      <dc:creator>JJK</dc:creator>
      <dc:date>2014-09-17T15:31:09Z</dc:date>
    </item>
    <item>
      <title>Quote:jimdempseyatthecove</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050803#M49876</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;jimdempseyatthecove wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Could you tell were fa and fb resided in both runs?&lt;/P&gt;

&lt;P&gt;In reading some of the other threads on this forum you might be experiencing a cache interaction issue. Your array sizes are 4MB. Depending on the page size, location of arrays (and start order of threads) you may be experiencing false sharing. VTune should be able to tell you if you are experiencing false sharing issues (though when measuring it will affect the behavior).&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;The array size doesn't really matter since what I am really using is&amp;nbsp;LOOP_COUNT(128)*numthreads(240)*bytes per number(4)=120KB per array.&lt;/P&gt;

&lt;P&gt;How could I tell the data addresses in VTune?&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 16:04:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050803#M49876</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-17T16:04:29Z</dc:date>
    </item>
    <item>
      <title>@Jan Just K</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050804#M49877</link>
      <description>&lt;P&gt;@Jan Just K&lt;/P&gt;

&lt;P&gt;Just want to confirm with you that I recompiled the code with -O3 and&amp;nbsp;got&amp;nbsp;better performance too:&lt;/P&gt;

&lt;PRE class="brush:;"&gt;# ssh mic0 /tmp/benchmark.mic
Initializing
Starting Compute on 228 threads
GFlops = 5836.800, Secs = 3.346, GFlops per sec = 1744.255
# ssh mic0 /tmp/benchmark-O3.mic
Initializing
Starting Compute on 228 threads
GFlops = 5836.800, Secs = 2.955, GFlops per sec = 1975.137

&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 17:45:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050804#M49877</guid>
      <dc:creator>Loc_N_Intel</dc:creator>
      <dc:date>2014-09-17T17:45:34Z</dc:date>
    </item>
    <item>
      <title>Quote:loc-nguyen (Intel)</title>
      <link>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050805#M49878</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;loc-nguyen (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;@Jan Just K&lt;/P&gt;

&lt;P&gt;Just want to confirm with you that I recompiled the code with -O3 and&amp;nbsp;got&amp;nbsp;better performance too:&lt;/P&gt;

&lt;PRE&gt;# ssh mic0 /tmp/benchmark.mic
Initializing
Starting Compute on 228 threads
GFlops = 5836.800, Secs = 3.346, GFlops per sec = 1744.255
# ssh mic0 /tmp/benchmark-O3.mic
Initializing
Starting Compute on 228 threads
GFlops = 5836.800, Secs = 2.955, GFlops per sec = 1975.137

&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Right, I am not surprised that -O3 can give you better performance.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Sep 2014 18:24:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/performance-difference-in-different-MPSS-versions/m-p/1050805#M49878</guid>
      <dc:creator>YW</dc:creator>
      <dc:date>2014-09-17T18:24:32Z</dc:date>
    </item>
  </channel>
</rss>

