<?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 Q&amp;A: How to determine performance headroom with HT-enabled processors in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-How-to-determine-performance-headroom-with-HT-enabled/m-p/972938#M5521</link>
    <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;Here is a question submitted to Intel Software Network Support, along with the response provided by our Application Engineers. &lt;FONT color="#000000"&gt;The following should be treated as a sample determination. Users should characterize the HT performance benefit ontheir own workload and arrive attheir own constant A:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Q. How can I calculate the overall processor time for a dual processor machine with HT enabled, once I have detected the HT, determined thenumber of logical processors per package, and associated the logical processors to physical processors? Would you please provide me with the formula which calculates the Overall (e.g. %Processor Time) for each individual physical processor?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT color="#336600"&gt;&lt;STRONG&gt;A. &lt;/STRONG&gt;In Windows*, you can use perfmon or the Task Manager to get an instantaneous measure of processor utilization. On Linux*, vmstat can provide the same information. If you have measured user time, system time, and elapsed time, then:&lt;BR /&gt;Processor utilization = (system time + user time)/(elapsed time).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;With Hyper-Threading Technology (HT), you should modify the formula slightly. See below:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;processor utilization = ( total_system_time + total_user_time )/ (elapsed_time * A).&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;total_system_time = time reported by the OS as spent on behalf of the application in kernel mode. If the application is multithreaded, then the user needs to sum up the time for all the threads.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT size="2"&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;total_user_time = time reported by the OS as spent on behalf of the application in user mode. Again, if the application is multithreaded, then the user needs to sum up the time for all the threads.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;A = a constant. Determination of this constant is a bit tricky and will vary from application to application. For a 2P system, A = 2.0. For a 2P HT system, this is somewhere between 2.0 and 2.4. It could be less than 2 but these cases are rare.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600"&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;Here's the rationale: the OS does not count an HT logical processor any differently than a physical processor, so using the processor utilization given by the OS will be optimistic. Say you're running a client-server application and your performance metric is the number of clients a system can support. If your OS, say through perfmon, showed 50% utilization at 100 users at a certain response time, with HT, you can't assume that you would be able to run 200 users at 100% utilization with the same response time. The point to emphasize is that an HT processor is not the same as a physical processor. If you assume a 20% performance benefit from HT, then you'd get the constant A to be 2.4. If you assume a 10% performance benefit from HT, then you'd get the constant A to be 2.2.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;One additional comment if you're running on Linux*: on Linux*, sar and sadc are another alternative for obtai
ning processor utilization directly. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;/usr/lib/sa/sadc x y filename // collect y samples, each sample of x second duration, into filename&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;sar -u x y -f filename // yields the collected data with almost no overhead.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;FONT size="2"&gt;======&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;Lexi S.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;IntelSoftware NetworkSupport&lt;/SPAN&gt;&lt;/FONT&gt;&lt;NAMESPACE prefix="o" ns="urn:schemas-microsoft-com:office:office"&gt;&lt;P&gt;&lt;/P&gt;&lt;/NAMESPACE&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/software" target="_blank"&gt;http://www.intel.com/software&lt;/A&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/58987.htm" target="_blank"&gt;Contact us&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;Intel is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;*Other names and brands may be claimed as the property of others.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Message Edited by intel.software.network.support on &lt;SPAN class="date_text"&gt;12-07-2005&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;04:53 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 29 Jan 2004 08:11:27 GMT</pubDate>
    <dc:creator>Intel_Software_Netw1</dc:creator>
    <dc:date>2004-01-29T08:11:27Z</dc:date>
    <item>
      <title>Q&amp;A: How to determine performance headroom with HT-enabled processors</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-How-to-determine-performance-headroom-with-HT-enabled/m-p/972938#M5521</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;Here is a question submitted to Intel Software Network Support, along with the response provided by our Application Engineers. &lt;FONT color="#000000"&gt;The following should be treated as a sample determination. Users should characterize the HT performance benefit ontheir own workload and arrive attheir own constant A:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Q. How can I calculate the overall processor time for a dual processor machine with HT enabled, once I have detected the HT, determined thenumber of logical processors per package, and associated the logical processors to physical processors? Would you please provide me with the formula which calculates the Overall (e.g. %Processor Time) for each individual physical processor?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT color="#336600"&gt;&lt;STRONG&gt;A. &lt;/STRONG&gt;In Windows*, you can use perfmon or the Task Manager to get an instantaneous measure of processor utilization. On Linux*, vmstat can provide the same information. If you have measured user time, system time, and elapsed time, then:&lt;BR /&gt;Processor utilization = (system time + user time)/(elapsed time).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;With Hyper-Threading Technology (HT), you should modify the formula slightly. See below:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;processor utilization = ( total_system_time + total_user_time )/ (elapsed_time * A).&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;total_system_time = time reported by the OS as spent on behalf of the application in kernel mode. If the application is multithreaded, then the user needs to sum up the time for all the threads.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT size="2"&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;total_user_time = time reported by the OS as spent on behalf of the application in user mode. Again, if the application is multithreaded, then the user needs to sum up the time for all the threads.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;A = a constant. Determination of this constant is a bit tricky and will vary from application to application. For a 2P system, A = 2.0. For a 2P HT system, this is somewhere between 2.0 and 2.4. It could be less than 2 but these cases are rare.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600"&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;Here's the rationale: the OS does not count an HT logical processor any differently than a physical processor, so using the processor utilization given by the OS will be optimistic. Say you're running a client-server application and your performance metric is the number of clients a system can support. If your OS, say through perfmon, showed 50% utilization at 100 users at a certain response time, with HT, you can't assume that you would be able to run 200 users at 100% utilization with the same response time. The point to emphasize is that an HT processor is not the same as a physical processor. If you assume a 20% performance benefit from HT, then you'd get the constant A to be 2.4. If you assume a 10% performance benefit from HT, then you'd get the constant A to be 2.2.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;One additional comment if you're running on Linux*: on Linux*, sar and sadc are another alternative for obtai
ning processor utilization directly. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#336600" size="2"&gt;/usr/lib/sa/sadc x y filename // collect y samples, each sample of x second duration, into filename&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;FONT color="#336600"&gt;sar -u x y -f filename // yields the collected data with almost no overhead.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;FONT size="2"&gt;======&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;Lexi S.&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;IntelSoftware NetworkSupport&lt;/SPAN&gt;&lt;/FONT&gt;&lt;NAMESPACE prefix="o" ns="urn:schemas-microsoft-com:office:office"&gt;&lt;P&gt;&lt;/P&gt;&lt;/NAMESPACE&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/software" target="_blank"&gt;http://www.intel.com/software&lt;/A&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/P&gt;
&lt;P class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Arial" color="black" size="2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/58987.htm" target="_blank"&gt;Contact us&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;Intel is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;*Other names and brands may be claimed as the property of others.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Message Edited by intel.software.network.support on &lt;SPAN class="date_text"&gt;12-07-2005&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;04:53 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2004 08:11:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-How-to-determine-performance-headroom-with-HT-enabled/m-p/972938#M5521</guid>
      <dc:creator>Intel_Software_Netw1</dc:creator>
      <dc:date>2004-01-29T08:11:27Z</dc:date>
    </item>
  </channel>
</rss>

