<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 03:56:06 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-kb/type/tips-and-techniques/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-kb/tips-and-techniques/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Can’t create a new advanced build activity in Microsoft* Visual Studio* 2008</title>
      <description><![CDATA[ <p><strong>Environment:</strong></p>
<p>Microsoft* Visual Studio* 2008</p>
<p>Intel (R) VTune(TM) Performance Analyzer v9.1 Update 2 with Intel(R) Thread Profiler 3.1 Update 12</p>
<p>Intel(R) Thread Checker 3.1 Update 12</p>
<p>Intel(R) Parallel Studio, Initial Release</p>
<p> </p>
<p><strong>Problem:</strong></p>
<p>The user installed VTune(TM) Performance Analyzer with Intel(R) Thread Profiler, Intel(R) Thread Checker first, then installed Intel(R) Parallel Studio. The icons of VTune(TM) Analyzer and other tools will be hidden in Toolbar's Options due to limited length of Toolbar. However if the user opened a solution and built project(s), then click on "Tuning Browser" tab, the user can't create a new advanced build activity since the icon was grayed.</p>
<p><strong>Root-cause:</strong></p>
<p>This is an unexpected error of the integration of Microsoft* Visual Studio* after installing Intel(R) Parallel Studio. For example, when the user has no solution file opened, all icons of tools should be inactive; When the user opens a new solution file, all icons of Intel(R) Parallel Studio are active, but some icons of old tools are inactive.</p>
<p><strong><img src="http://software.intel.com/file/21563" alt="icon-grayed.bmp" title="icon-grayed.bmp" /></strong> </p>
<p><strong>Resolution:</strong></p>
<ol type="1">
<li>Click on "Tuning Browser" tab first</li>
<li>Click on "Solution Explorer" tab</li>
<li>Click on "Tuning Browse" tab again.</li>
<li>Click on the project in "Tuning Browser" window</li>
</ol>
<p>The icon of "Advanced Activity Build" should be active.<br /><br /><strong><strong><img src="http://software.intel.com/file/21564" alt="icon-on.bmp" title="icon-on.bmp" /></strong></strong></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/cant-create-a-new-advanced-build-activity-in-microsoft-visual-studio-2008</link>
      <pubDate>Thu, 06 Aug 2009 02:22:15 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/cant-create-a-new-advanced-build-activity-in-microsoft-visual-studio-2008#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cant-create-a-new-advanced-build-activity-in-microsoft-visual-studio-2008</guid>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
      <category>Intel® Thread Profiler for Windows* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel(R) Parallel Inspector Comparison with Intel(R) Thread Checker</title>
      <description><![CDATA[ <span style="font-size: small;">
<p>The following table can help you decide which tool to use: <br /> <br /> 
<table id="table1" class="sectionHeadingText" border="1" width="100%">
<tbody>
<tr>
<td></td>
<td align="center" bgcolor="#0099ff"><b> <span style="font-family: Verdana; color: #ffffff; font-size: x-small;">Intel® Parallel Inspector</span></b></td>
<td align="center" bgcolor="#0099ff"><b> <span style="font-family: Verdana; color: #ffffff; font-size: x-small;">Intel® Thread Checker</span></b></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Threading errors - Data races and Deadlocks</span></td>
<td align="center" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Does not require special build or source code</span></td>
<td align="center" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Memory errors</span></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><br /></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Easier to learn and reuse</span></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><br /></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Low overhead analysis</span></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><br /></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Improved scalable analysis without serializing the app</span></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
<td align="center" valign="bottom"><br /></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Windows* standalone</span></td>
<td align="center" valign="bottom"><br /></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Linux* support</span></td>
<td align="center" valign="bottom"><br /></td>
<td align="center" bgcolor="#99ccff" valign="bottom"><span style="font-family: Verdana; font-size: x-small;">√</span></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Licensing</span></td>
<td align="center"><span style="font-family: Verdana; font-size: xx-small;">Single User</span></td>
<td align="center"><span style="font-family: Verdana; font-size: xx-small;">Single User &amp; Floating</span></td>
</tr>
<tr>
<td align="right"><span style="font-family: Verdana; font-size: x-small;">Support</span></td>
<td align="center"><span style="font-family: Verdana; font-size: xx-small;">forum support<br /> premier support option</span></td>
<td align="center"><span style="font-family: Verdana; font-size: xx-small;">unlimited premier support &amp;<br /> 1 year product updates</span></td>
</tr>
</tbody>
</table>
</p>
<p> </p>
<span style="font-size: small;">
<p>Intel Thread Checker is still the right choice for developers who need:</p>
<ul>
<li>Analysis outside of Visual Studio (standalone version)</li>
<li>Floating licenses</li>
<li>Unlimited, secure, formal support</li>
<li>Ability to check Linux applications</li>
</ul>
</span>
<p> </p>
</span> ]]></description>
      <link>http://software.intel.com/en-us/articles/intelr-parallel-inspector-comparison-with-intelr-thread-checker</link>
      <pubDate>Thu, 09 Jul 2009 16:08:18 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intelr-parallel-inspector-comparison-with-intelr-thread-checker#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intelr-parallel-inspector-comparison-with-intelr-thread-checker</guid>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Linux* - General Installation Information</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy">
<p><strong>Page Contents:</strong></p>
<ul>
<li><a href="#1">What software must already be installed?</a></li>
<li><a href="#2">Installing a New Version Over an Already Installed Version</a></li>
<li><a href="#3">General Installation Tips for Linux*</a></li>
</ul>
<p><br><a name="1"></a><strong>What software must already be installed?</strong><br>Before installing Intel® Thread Checker onto Microsoft Windows*, you must have the 
<a href="http://www.intel.com/software/products/vtune/">VTune&trade; Performance Analyzer v7.2</a> already installed, as Intel® Thread Checker is a plug-in to the VTune&trade; environment. Visit the 
<a href="http://www.intel.com/software/products/threading/">Intel® Threading Tools</a> Web site to obtain VTune Performance Analyzer and/or Intel Thread Checker.
<br><br>On Microsoft Windows systems, you must also have the following already installed:</p>
<ul>
<li>Microsoft Visual* C++ v6.0, or higher</li>
<li>
<a href="http://www.intel.com/software/products/compilers/">Intel® Compilers</a> are required for source 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a> or OpenMP* analysis.</li>
<li>Microsoft* Internet Explorer v6.0, or higher</li>
<li>Adobe* Reader*</li>
</ul>
<p>To use the Linux* Remote Data Collector (Remote Agent), you must also install Intel Thread Checker on a Microsoft Windows system.</p>
<br><p><a name="2"></a><strong>Installing a New Version Over an Already Installed Version</strong><br>To install a new version of Intel Thread Checker, you must first uninstall the currently installed version.
<br><br><strong>Note:</strong> Before removing the current version from Windows, you might want to save your projects using 
<strong>File &raquo; Pack and Go</strong> menu in the VTune environment.
<br><br>To remove the currently installed version from Windows*, go to 
<strong>Start &raquo; Control Panel &raquo; Add or Remove Programs &raquo; Intel® Thread Checker</strong>.
<br><br>To remove the currently installed version from Linux, run 
<strong>uninstall32.sh</strong> or 
<strong>uninstall64.sh</strong>, which is typically found in the 
<strong>/opt/intel/itt</strong> directory.</p>
<p><br><a name="3"></a><strong>General Installation Tips for Linux*</strong></p>
<ul>
<li>To use the Linux Remote Data Collector (Remote Agent), you must also install Intel Thread Checker on a Microsoft Windows system.</li>
<li>The Remote Data Collector (RDC) .tar file for Linux is included with the Windows* installation package.</li>
<li>If you use ftp* to transfer the RDC .tar file to a Linux system, be sure to use a binary transfer.</li>
<li>If you are also using the Intel Compilers on your Linux system, you should install Intel Compilers 
<strong>before</strong> installing Intel Thread Checker.
<ul type="circle"></ul>
</li>
<li>If you update your Intel Compilers after installing Thread Checker, re-run the Thread 
Checker install script after updating the Intel Compilers.</li>
</ul>
<ul>
<li>Installation includes a script 
<strong>tcvars.sh</strong> (and 
<strong>tcvars.csh</strong>), typically in the 
<strong>/opt/intel/itt/tcheck/bin/32</strong> or 
<strong>/opt/intel/itt/tcheck/bin/64</strong> directory. Use the 
<strong>source tcvars.sh</strong> command to setup the shell environment for source instrumentation with the Intel® Compiler.</li>
<li>After installation, see the file 
<strong>tcheckFAQ.htm</strong>, typically found in the 
<strong>/opt/intel/itt</strong> directory, for important overview and usage information.</li>
</ul>
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-general-installation-information</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-general-installation-information#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-general-installation-information</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Linux* - Tips and Techniques</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy">
<p><strong>Page Contents:</strong><br></p>
<ul>
<li><a href="#1">I don't have source code. Can I use Intel® Thread Checker?</a></li>
<li><a href="#2">Collecting Thread Checker Diagnostics Outside of the VTune&trade; Environment</a></li>
<li><a href="#3">Analyze Multiple Processes or Executables</a></li>
<li><a href="/en-us/articles/intel-thread-checker-tips-for-analyzing-long-diagnostic-lists">Tips for Analyzing Long Diagnostic Lists</a></li>
<li><a href="/en-us/articles/performance-tools-for-software-developers-catastrophic-error-tcheck10ini-not-found">Catastrophic error: tcheck10.ini not found</a></li>
</ul>
<br><a name="1"></a><strong>I don't have source code. Can I use Intel® Thread Checker?</strong><br>Yes. For example: You are using an executable file from another vendor, so you don't have source code to it. But you are interested in diagnostics about a library (.dll or .so file) that is loaded by the vendor's executable file. You may not even have source code for the library that gets loaded. You can still use Thread Checker to see if any threading diagnostics are detected.Of course, if you really want to correct threading issues, you'll need source code.
<br><br><br><a name="2"></a><strong>Collecting Thread Checker Diagnostics Outside of the VTune&trade; Environment</strong><br>To collect diagnostics outside of the VTune&trade; environment, follow this process:
<ol>
<li>Compile your software using an Intel® Compiler and the /Qtcheck (on Microsoft Windows*) or -tcheck (on Linux*) switch. This option enables source 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a>.
<br><br>
</li>
<li>Start your software as usual from the Windows*, DOS* or Linux* environment. For example, use Windows Explorer* to browse to your executable file and double-click on that file name.
<br><br>
</li>
<li>Run your software until it terminates normally. Don't forget to reduce your 
<a href="/en-us/articles/intel-thread-checker-for-windows-execution-speed-and-memory-usage">workload</a>. Also because your software is instrumented, expect that it will run slower than usual.
<br><br>
</li>
<li>Exit (quit) your software, and a Thread Checker results ("*.thr") file is written to the working folder. If you are running on a Linux* system, transfer the .thr results file back to a Microsoft Windows* system (with Thread Checker installed) for viewing.
<br><br>
</li>
<li>To view the results file with Windows* Explorer, simply double-click the file. Alternatively you can start the VTune environment and open it with the 
<strong>File &raquo; Open File ...</strong> (NOT 
<strong>Open Project...</strong>) dialog. 
<strong>Important:</strong> Don't forget to set the file type to 
<strong>*.thr</strong> when using this dialog.</li>
</ol>Keep in mind that when collecting data outside of the VTune environment, only software that has been source instrumented will be analyzed by Thread Checker. Therefore, threading errors in the not instrumented softwa
re may be missed. To ensure that all run-time code is instrumented, you must run from within the VTune environment or Microsoft .NET* Developer Environment.
<br><br><strong>Note:</strong> Many third-party libraries, such as MFC* (Microsoft Foundation Class*) libraries, create and use threads. Therefore, software that uses MFC should always be run from within the VTune environment or Microsoft .NET* Developer Environment
<br><br><br><a name="3"></a><strong>Analyze Multiple Processes or Executables</strong><br>Intel® Thread Checker only supports one process (executable) when run from within either the VTune&trade; environment or Microsoft .NET* Developer Environment. Furthermore, Thread Checker only supports finding diagnostics within one process; that is it will not produce diagnostics for synchronization objects shared between processes. However if your software launches another process, Thread Checker can still be used to find threading diagnostics within either process. To use Thread Checker for either process, use source 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a> and run your software outside of the VTune&trade; environment.
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-tips-and-techniques</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-tips-and-techniques#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-linux-tips-and-techniques</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker - Tips for Analyzing Long Diagnostic Lists</title>
      <description><![CDATA[ <table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p>This document provides the best known method for dealing with long diagnostic lists in Intel® Thread Checker. <br /><br /><img src="http://software.intel.com/file/6398" border="0" alt="icon" width="16" height="16" align="bottom" /><a href="javascript:ShowNew(&quot;http://download.intel.com//support/performancetools/threadchecker/bkm.pdf&quot;)" target="_top">Tips for Analyzing Long Diagnostic Lists [BKM.PDF]</a><br /><img src="http://software.intel.com/file/6408" alt="" width="15" height="3" /><em>Size:</em> 2586113 bytes <br /><img src="http://software.intel.com/file/6408" alt="" width="15" height="3" /><em>Date:</em> 03/14/03 02:38 PM <br />

<img src="http://software.intel.com/file/6408" alt="" width="1" height="10" /></p>
<p class="bodycopy"><span style="font-family: Arial,Helvetica,sans-serif; font-size: x-small;"><strong>Note:</strong> PDF Files require  <a href="javascript:ShowNewPdf(&quot;http://www.adobe.com/products/acrobat/readstep2.html&quot;)" target="_top">Adobe Acrobat* Reader</a><sup>†</sup></span></p>
<br /><img src="http://software.intel.com/file/6408" alt="" width="1" height="10" /><br />
<p class="xs"><span style="font-family: Arial,Helvetica,sans-serif; font-size: xx-small;"> <sup>†</sup> This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.</span></p>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-tips-for-analyzing-long-diagnostic-lists</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-tips-for-analyzing-long-diagnostic-lists#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-tips-for-analyzing-long-diagnostic-lists</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker - Threading Methodology [PDF]</title>
      <description><![CDATA[ <table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p>This document introduces threading concepts and provides a methodology for threading serial applications and for tuning threaded applications for performance using the Intel® Threading Tools.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6398" border="0" alt="icon" width="16" height="16" align="bottom" /></td>
<td class="bodycopy"><a href="http://software.intel.com/file/6393">Threading Methodology: Practices &amp; Principles [PDF]</a></td>
</tr>
<tr>
<td><img src="http://software.intel.com/file/6408" alt="" width="15" height="3" /></td>
<td class="bodycopy"><em>File Name:</em> methodology.pdf <br /><em>Size:</em> 1,684,645 bytes <br /><em>Date:</em> 10/30/04 <br /></td>
</tr>
</tbody>
</table>

<img src="http://software.intel.com/file/6408" alt="" width="1" height="10" /><br />
<p class="bodycopy"><span style="font-family: Arial,Helvetica,sans-serif; font-size: x-small;"><strong>Note:</strong> PDF Files require  <a href="javascript:ShowNewPdf(&quot;http://www.adobe.com/products/acrobat/readstep2.html&quot;)" target="_top">Adobe Acrobat* Reader</a><sup>†</sup></span></p>
<br /><img src="http://software.intel.com/file/6408" alt="" width="1" height="10" /><br />
<p class="xs"><span style="font-family: Arial,Helvetica,sans-serif; font-size: xx-small;"> <sup>†</sup> This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.</span></p>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-threading-methodology-pdf</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-threading-methodology-pdf#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-threading-methodology-pdf</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Windows* - Product Overview</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy"><p>Intel® Thread Checker is a tool that locates software threading bugs, such as data races, stalls, and deadlocks. Thread Checker monitors your software's execution to detect hard-to-find and impossible-to-find intermittent errors whether or not they actually occurred during execution.
<br><br>Thread Checker uses 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a>, which occurs automatically at run-time within the VTune environment or Microsoft .NET* Developer Environment, or can be performed beforehand with the Intel® C++ or Fortran Compilers.
<br><br>When your software has finished executing, a diagnostic list of potential threading errors will be displayed. You can drill down to the line of source code where each diagnostics occurred, look at the call stack, and review variable definitions and context.
<br><br>For more information on this product, including how to purchase or get a free evaluation copy, please visit the 
<a href="http://www.intel.com/software/products/threading/">Intel® Threading Tools</a> web site.</p></td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-product-overview</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-product-overview#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-product-overview</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Windows* - Preparing Your Software: Building or Making Source Code</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy">
<p><strong>Page Contents:</strong><br></p>
<ul>
<li><a href="#1">Tips on Preparing Microsoft Windows* Code</a></li>
<li><a href="#2">Intel® Thread Checker Run-Time Warnings for Microsoft Windows* Applications</a></li>
<li><a href="#3">I don't have source code. Can I use Intel® Thread Checker?</a></li>
</ul>
<br><p><strong><a name="1"></a>Tips on Preparing Microsoft Windows* Code for Intel® Thread Checker</strong><br>The following are general tips for preparing Windows* source code for Intel® Thread Checker. Build (make) your source with the following switches:</p>
<ul>
<li>Be sure to build thread-safe by compiling with the /MD, /MDd, /MT or /MTd switch. This will use the thread-safe run-time libraries.
<br><br><strong>Note:</strong> The default for Microsoft* and Intel® Compilers is the /ML or /MLd switch and this does not use thread-safe libraries.
<br><br>
</li>
<li>Generate symbols by compiling with the /Zi, /ZI or /Z7 switches and link with the /DEBUG switch. This will enable Thread Checker to specify source code information (file name and line number) with its diagnostics.
<br><br>
</li>
<li>Compile without optimization using the /Od switch. Just like when using a debugger, this will enable Thread Checker source code information (especially line numbers) to be accurate. Moreover, turning on compiler optimizations is usually not beneficial for code run under Intel Thread Checker.
<br><br>
</li>
<li>Executable software must be built so that it contains a relocation section that allows for relocation in memory. Relocation is required for 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a>. Most dynamic-link library (.dll) files can be relocated by default; however by default, most executable (.exe) files cannot be relocated. So always link with the /FIXED:NO switch to allow for relocation.
<br><br><strong>Tip:</strong> Instead of changing your project's settings, set the (system) environment variable 
<strong>LINK</strong> to the value 
<strong>/FIXED:NO</strong> and re-link your code to add a relocation section.
<br><br>
</li>
<li>To reduce executable (.dll or .exe) code size, link with the /INCREMENTAL:NO switch.</li>
</ul>
<p><strong><a name="2"></a>Intel® Thread Checker Run-Time Warnings for Microsoft Windows* Applications</strong><br>If you get the warning "modules were created without base relocations" when you run Intel® Thread Checker activity in the VTune&trade; environment or Microsoft .NET* Development Environment, your code probably doesn't contain a relocation section. Link with the /FIXED:NO switch to add a relocation section.</p>
<p><a name="3"></a><strong>I don't have source code. Can I use Intel® Thread Checker?</strong><br>Yes -- But on Microsoft Windows*, do not expect to get any threading diagnostics for the application (.exe) file itself b
ecause typically on Windows the executable does not have a relocation section.</p>
<p>An example of using Thread Checker without source code might be if you are using an application file from another vendor, so you don't have source code for the for the application. But you are interested in diagnostics about a dynamic or shared library file that is loaded by the vendor's .application. You may not even have source code for the library that gets loaded. You can still use Thread Checker to see if any threading diagnostics are detected. Of course, if you really want to correct threading issues, you'll need source code.</p>
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-preparing-your-software-building-or-making-source-code</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-preparing-your-software-building-or-making-source-code#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-preparing-your-software-building-or-making-source-code</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Windows* - Execution Speed and Memory Usage</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy">
<p><strong>Page Contents:</strong></p>
<ul>
<li><a href="#1">Why does my software run so slow and/or use so much memory when run with Intel® Thread Checker?</a></li>
<li><a href="#2">About Workload Reduction: What does workload reduction mean?</a></li>
<li><a href="#3">About Workload Reduction: What kind of workload reduction should I use?</a></li>
<li><a href="#4">Reducing Memory Usage</a></li>
</ul>
<br><p><a name="1"></a><strong>Why does my software run so slow and/or use so much memory when run with Intel® Thread Checker?</strong><br>Intel® Thread Checker uses dynamic analysis as your threading software executes. As your software runs, Thread Checker uses 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a> to monitor each thread, including the threading APIs used and memory accesses. Therefore Thread Checker uses more memory due to the instrumentation and significantly slows down the execution of any software.</p>
<p>For this reason, it is critical to reduce the workload of your software before running it under Thread Checker. Reducing the workload may speed up analysis of the software and may reduce the memory used.
<br></p>
<p><a name="2"></a><strong>About Workload Reduction: What does workload reduction mean?</strong><br>This is a reduction in the amount of work your program performs. It might include reducing the amount of data your program processes and/or reducing the amount of processing your program performs on each piece of data.</p>
<p>Some examples of work-load reduction include:</p>
<ul>
<li>Processing a 32x24 pixel image instead of a 1920x1440 pixel image. If there is a threading error within the loops that process the image, it does not provide you with any more information to find the same error thousands or millions of times. Finding a threading error a few (tens or hundreds) times is sufficient and makes you more productive.
<br><br>
</li>
<li>Minimize the number of times you process each piece of data by reducing the loop iterations. Your software does not need a lot of accuracy when run under Intel® Thread Checker. After all, the goal is to find threading errors and not to get accurate results.
<br><br>
</li>
<li>Minimize the update rates and/or length. Try using only one second of video, or reduce the update rate of the display to once per second instead of thirty or more updates a second.</li>
</ul>
<br><p><a name="3"></a><strong>About Workload Reduction: What kind of workload reduction should I use?</strong><br>You should use as much workload reduction as possible while still being sure that you're executing the code that you want checked. Intel® Thread Checker uses dynamic analysis when executing your software. If section of your code is not executed, Thread Checker cannot give you diagnostics about the not-executed code. Where possible, you should try using multip
le short runs over different code paths.</p>
<br><p><a name="4"></a><strong>Reducing Memory Usage</strong><br>Some general tips for reducing memory usage:</p>
<ul>
<li>Reduce the size of the data-set that your software reads or writes, so that Intel® Thread Checker doesn't need to track as many memory accesses.
<br><br>
</li>
<li>Disable 
<strong>Allocated memory guard padding</strong> by setting it to 0 (zero). In the VTune&trade; environment, this can be set via the 
<strong>Configure &raquo; Modify Intel® Thread Checker Collector</strong> menu item and the 
<strong>Analysis</strong> tab.
<br><br>
</li>
<li>Make sure you are using the 
<a href="/en-us/articles/intel-thread-checker-for-windows-instrumentation">instrumentation</a> level of All Functions instead of Full Image. In the VTune environment, this can be set via the 
<strong>Configure &raquo; Modify Intel® Thread Checker Collector</strong> menu item and the 
<strong>Module Instrumentation</strong> tab.
<br><br>
</li>
<li>On Microsoft Windows*, link your software with the 
<strong>/INCREMENTAL:NO</strong> switch.</li>
</ul>
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-execution-speed-and-memory-usage</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-execution-speed-and-memory-usage#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-execution-speed-and-memory-usage</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Thread Checker for Windows* - Features List</title>
      <description><![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table border="0" cellspacing="15" cellpadding="0"><tr><td class="bodycopy">
<ul>
<li><a href="#1">Features</a></li>
<li><a href="#2">Product Brief</a></li>
<li><a href="#3">Compatibility</a></li>
</ul>
<p><a name="1"></a><strong>Features</strong></p>Patented advanced error detection engine:
<ul>
<li>Detects hidden potential errors, mapping them to the source-code line, call stack, and memory reference</li>
<li>Displays warnings for effective diagnosis, highlighting the most potentially severe errors</li>
<li>Tracks the error down to the specific variable in your source code using source instrumentation</li>
<li>Mitigates the risk of adding threads and enables hands-on learning about threading principles</li>
</ul>
<p>Patented advanced error detection engine:</p>
<ul>
<li>Detects hidden potential errors, mapping them to the source-code line, call stack, and memory reference</li>
<li>Displays warnings for effective diagnosis, highlighting the most potentially severe errors</li>
<li>Tracks the error down to the specific variable in your source code using source instrumentation</li>
<li>Mitigates the risk of adding threads and enables hands-on learning about threading principles</li>
</ul>
<p>Works on standard debug builds:</p>
<ul><li>Does not require your application to be recompiled</li></ul>
<p>Calibration run:</p>
<ul><li>Recommends which modules to instrument based on usage, decreasing instrumentation time</li></ul>
<p>Patented OpenMP* analysis:</p>
<ul><li>Enables rapid prototyping by determining the impact that threading will have atspecific points in your application</li></ul>
<p>Real-time verbose output and status query:</p>
<ul><li>Start viewing detailed diagnostic information as soon as a potential error is uncovered, while Intel® Thread Checker continues to check the rest of the application.</li></ul>
<p>Improved existing features in the 3.1 release include the following:</p>
<ul>
<li>32-bit and 64-bit support for Windows Vista*</li>
<li>Support for Intel® VTune&trade; Performance Analyzer 9.0 for Windows*</li>
<li>Support for the latest Intel® multi-core processors, including</li>
<li>Intel® Core&trade; 2 Duo, and</li>
<li>Intel® Core&trade; 2 Quad processors</li>
</ul>
<ul><li>Performance optimizations by descriptor-based static binary instrumentation which, reduces the instrumented image size and decreases runtime overhead.</li></ul>
<br><p><a name="2"></a><strong>Product Brief</strong></p>
<p>Intel® Thread Checker 3.1 for Windows* is instrumental at every phase of the application development cycle.</p>
<ul>
<li>In the design phase, it helps you decide where and how to add threading in your application.</li>
<li>As you implement threading into your application, it can detect hard-to-find threading bugs like data races and deadlocks.</li>
<li>You can also ensure code quality by integrating it into your automated Quality Assurance/ test process.</li>
</ul>
<p><a name="3"></a><strong>Compatibility</strong></p>
<p>Intel Thread Checker 3.1 for Windows is compatible with today's in
dustry-standard development tools:</p>
<ul>
<li>Microsoft Visual Studio* .NET</li>
<li>Microsoft Visual C++* .NET development environment Compiler 2005, 2003, 2002 Editions or Visual C++ 6.0</li>
<li>Intel® Fortran and C++ Compilers</li>
<li>Windows threads and POSIX* threads</li>
<li>Support for OpenMP*</li>
</ul>
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><img src="http://software.intel.com/file/6324" width="388" height="5"></td></tr>
<tr><td height="10"></td></tr>
</table>
</body></html>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-features-list</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-features-list#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-thread-checker-for-windows-features-list</guid>
      <category>Software Products General</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
    </item>
  </channel></rss>