<?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:  Hyper-Threading and Assembler in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-Hyper-Threading-and-Assembler/m-p/964232#M5379</link>
    <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Here is a question received by Intel Developer Services Support, followed by the response provided by our Application Engineers:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Q. I wonder if there are any adaptations of Hyper-Threading technology in assembler? Can I write any programmes (including the simplest ones) which use this technology? Howdo Ido this? Could you give me some examples of source code which I can use in assembler with explanation and comments? &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#006600"&gt;&lt;STRONG&gt;A.&lt;/STRONG&gt; The first thing to understand about Hyper-Threading Technology is how it's implemented. Here is a link to a tutorial that explains how Hyper-Threading works: &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm" target="_blank"&gt;http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;In a nutshell, Hyper-Threading Technology allows a single processor to appear as 2 processors to the OS. This is done by duplicating a few resources on the actual CPU so that there can be 2 architectural states. Since there are not 2 actual physical processors available to the OS as there would be in a dual-processor system, we say there are 2 logical processors. &lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT size="2"&gt;
&lt;DIV align="left"&gt;&lt;BR /&gt;&lt;FONT color="#006600"&gt;In order to take advantage of this technology, an application would need to be threaded. Existing applications that are threaded for multi-processor systems should automatically take advantage of Hyper-Threading technology. This paper, &lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1" target="_blank"&gt;http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;, includes a link to download sample code that has some assembly instructions and some threading. &lt;/FONT&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;Now, once you've written your code, you may want to look at optimizing it for maximum performance. This tutorial, &lt;/FONT&gt;&lt;A href="http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm" target="_blank"&gt;http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;, shows a few threading techniques (along with small code samples) to use on IA-32 processors to achieve maximum performance. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;==&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Lexi S.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&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;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&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:45 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 07 Apr 2004 01:33:31 GMT</pubDate>
    <dc:creator>Intel_Software_Netw1</dc:creator>
    <dc:date>2004-04-07T01:33:31Z</dc:date>
    <item>
      <title>Q&amp;A:  Hyper-Threading and Assembler</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-Hyper-Threading-and-Assembler/m-p/964232#M5379</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Here is a question received by Intel Developer Services Support, followed by the response provided by our Application Engineers:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;Q. I wonder if there are any adaptations of Hyper-Threading technology in assembler? Can I write any programmes (including the simplest ones) which use this technology? Howdo Ido this? Could you give me some examples of source code which I can use in assembler with explanation and comments? &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#006600"&gt;&lt;STRONG&gt;A.&lt;/STRONG&gt; The first thing to understand about Hyper-Threading Technology is how it's implemented. Here is a link to a tutorial that explains how Hyper-Threading works: &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm" target="_blank"&gt;http://or1cedar.intel.com/media/training/hyper_threading_intro/tutorial/index.htm&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;In a nutshell, Hyper-Threading Technology allows a single processor to appear as 2 processors to the OS. This is done by duplicating a few resources on the actual CPU so that there can be 2 architectural states. Since there are not 2 actual physical processors available to the OS as there would be in a dual-processor system, we say there are 2 logical processors. &lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT size="2"&gt;
&lt;DIV align="left"&gt;&lt;BR /&gt;&lt;FONT color="#006600"&gt;In order to take advantage of this technology, an application would need to be threaded. Existing applications that are threaded for multi-processor systems should automatically take advantage of Hyper-Threading technology. This paper, &lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1" target="_blank"&gt;http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/code/languages/cpp/20491.htm?page=1&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;, includes a link to download sample code that has some assembly instructions and some threading. &lt;/FONT&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT color="#006600" size="2"&gt;Now, once you've written your code, you may want to look at optimizing it for maximum performance. This tutorial, &lt;/FONT&gt;&lt;A href="http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm" target="_blank"&gt;&lt;FONT color="#006600" size="2"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm" target="_blank"&gt;http://or1cedar.intel.com/media/training/spinloop/tutorial/index.htm&lt;/A&gt;&lt;FONT color="#006600" size="2"&gt;, shows a few threading techniques (along with small code samples) to use on IA-32 processors to achieve maximum performance. &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;==&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&gt;Lexi S.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align="left"&gt;&lt;FONT size="2"&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;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&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:45 PM&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Apr 2004 01:33:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Q-A-Hyper-Threading-and-Assembler/m-p/964232#M5379</guid>
      <dc:creator>Intel_Software_Netw1</dc:creator>
      <dc:date>2004-04-07T01:33:31Z</dc:date>
    </item>
  </channel>
</rss>

