<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sat, 26 May 2012 04:03:41 -0700 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-parallel-composer-kb/type/landing-links/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles Feed</title>
    <link>http://software.intel.com/en-us/articles/intel-parallel-composer-kb/type/landing-links/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Intel® Threading Building Blocks: Community Preview Features</title>
      <description><![CDATA[ <p><b>Intel® Threading Building Blocks: Community Preview Features </b></p>
<p> </p>
<p><b>Introduction</b></p>
<p>Nearly every class and function that we have added to Intel® Threading Building Blocks (Intel® TBB) since its first version have been designed to address users' needs. We actively work with our users via the <a href="http://software.intel.com/en-us/forums/intel-threading-building-blocks/">forum</a> and constantly incorporate suggestions for improvements made by our commercial customers and members of the Intel TBB open source community. We regularly publish Intel TBB non-commercial developer releases at <a href="http://www.threadingbuildingblocks.org/">www.threadingbuildingblocks.org</a> and for several years this has served as a good way to get early feedback on new features we were introducing. In order to provide access to new features to a wider range of Intel TBB users, we are introducing a new class of features, called Community Preview (CP) features, which will be added to Intel TBB commercial product updates.</p>
<p> </p>
<p><b>Definition of Community Preview (CP) features</b></p>
<p>The main idea with CP features is to provide a more responsive way to get early feedback on features by delivering them earlier to both commercial and open source users of Intel TBB). In general, a CP feature is a new, production-quality, and fully-tested capability that we add to the library (new class or a collection of classes, new function etc.) for all users of Intel TBB: commercial users get access to the CP features via regular product updates and members of the open source community get them via commercially-aligned open source releases that we publish around the official release of commercial update. The major difference between a CP feature from a regular Intel TBB feature is that the CP feature is not enabled by default and when developers are ready to try it out they will have to enable it manually either by defining a compiler macro or, in some cases, linking with a special library. For each particular CP feature we will publish enabling instructions in the product documentation where it is clearly marked as a CP feature.</p>
<p> </p>
<p><b>Support Model for CP features</b></p>
<p>Each new release of Intel TBB is backward-compatible with the previous versions: the Intel TBB development team makes sure that interfaces implemented by the library stay unchanged and are committed to keeping Intel TBB backward-compatible. The nature and purpose of CP features is different from all other features of Intel TBB: we introduce CP features to gather early feedback from users and therefore we may need to change interfaces related to a CP feature based on users' feedback. Here is the summary of differences in support model for CP features:</p>
<p>• Documentation on a CP feature might be incomplete</p>
<p>• The implementation of a CP feature is separated from the rest of the library features (separate header file and/or additional library) and usage of a CP feature requires special enabling</p>
<p>• Backward-compatibility is not guaranteed for CP features: we might change interfaces or the entire implementation based on users' feedback</p>
<p>• Future support of each CP feature is not guaranteed: we might drop the feature entirely based on users' feedback</p>
<p>Due to the different support model for CP features, developers should not use them in their production code.</p>
<p> </p>
<p><b>Conclusion </b></p>
<p>CP features are a new and, we believe, better way to communicate with users of Intel TBB: we deliver innovative features to developers faster and in a more convenient way than before. We hope users will follow announcements on new CP feature availability and use them: we look forward to your feedback and we are committed to improving interfaces and implementations of CP features based on your feedback and converting the most useful CP features into fully supported Intel TBB features.</p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-tbb-community-preview-features/</link>
      <pubDate>Mon, 22 Nov 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-tbb-community-preview-features/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-tbb-community-preview-features/</guid>
      <category>Parallel Programming</category>
      <category>Intel® TBB</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Threading Building Blocks Knowledge Base</category>
    </item>
    <item>
      <title>Use Intel IPP in Intel® Parallel Studio</title>
      <description><![CDATA[ <p>Intel® IPP is part of Intel® Parallel Studio.  Once you install Parallel Studio, IPP will be installed as one component of Intel® Parallel Composer automatically.  (See detials in <a href="http://software.intel.com/en-us/articles/new-directory-structure-and-library-naming-in-ipp/">the IPP library layout in Parallel Studio</a>.) This privodes us a easy way to use IPP in Parallel Studio.  This article describes how to develop IPP application in Intel® Parallel Studio in two steps. <br /><br /><b>Preparation</b> <br />Create a Visual C++ project for your application <br />or <br />There are ready IPP samples (Microsoft Visual Studio 2005 Project) located in the Parallel Studio install directory <br />For example, enter C:\Program Files\Intel\Parallel Studio 2011\Composer\Samples\en_US\IPP\ipp-samples-string\ipp-samples\string-processing\ippgrep. Double click ippgrep.sln. The MSVC solution will be open in Visual Studio 2005/2008/2010.  <br /><br />Then from the <b>Menu » Project </b> (or right-click the Project in Solution Explorer) select<b> Intel Parallel Composer 2011 »</b> <b>Using Intel C++ .... .</b> The project will be converted to Intel Composer project. <br /><br /><b>Use IPP In  Intel® Parallel Composer<br />Step 1</b>. <b>write IPP code <br /></b>include IPP header file and call IPP function in your code <img src="http://software.intel.com/file/19468" alt="build1.JPG" title="build1.JPG" width="878" height="518" /></p>
<p><b>Step 2</b> . <b>Link IPP library in your application<br /></b>From the <b>Menu &gt;&gt; project </b> (or right-click the Project in Solution Explorer) select<b> Intel Parallel Composer 2011 »</b> <b>Select Build Components, Check the box Use IPP. </b>The setting will link IPP dynamic library atomatically.  If your application is build sucessfully, you can run the exe. <br /> <img src="http://software.intel.com/file/29926" alt="Composer_2011_ipp_2005.JPG" title="Composer_2011_ipp_2005.JPG" /></p>
<p><b> Note<br /></b>1. If you'd like link the IPP static library, please download and install IPP static library first.  See Download IPP Static Libraries for Intel Parallel Studio.  <br />2. If you'd like link the IPP library and set IPP library path manually,  you may follow the steps on <a href="http://software.intel.com/en-us/articles/compiling-and-linking-ipp-applications-with-intel-c-compilers/">Compiling and Linking Intel® IPP with latest Intel® C++ Compilers</a> <br />3. If you run into any IPP issues, please refer to the KB <a href="http://software.intel.com/en-us/articles/how-to-build-ipp-application/"><b>How to Build an Intel IPP Application </b></a>=&gt; <b>Troubleshooting - Compile and Linking Errors</b> or report your issue to <a href="http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/"><b>IPP forum</b></a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/</link>
      <pubDate>Wed, 01 Sep 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>How to build one hotspot file with Intel C++ Compiler within Visual Studio 2005, 2008 or 2010</title>
      <description><![CDATA[ <p>In the Intel Parallel Composer 2011 or Intel C++ Composer XE, it take only ONE step to set a file in a project with Intel C++ Compiler:</p>
<ol>
<li>Right click on the file (perf.cpp), select "Intel Parallel Composer 2011" or "Intel C++ Composer XE", then select "Use Intel C++ for selected file(s)"<br /><img height="122" width="430" src="http://software.intel.com/file/29832" alt="hot-spot.jpg" title="hot-spot.jpg" /></li>
<li>Build the project</li>
</ol>
<p>As you can see, it's just one STEP to build one hot-spot file with Intel C++ Compiler. <br /><br />In the previous Intel Parallel Composer or Intel C++ Compiler for Windows 11.1, it takes several steps like below in order to build only one file in a project with Intel C++ Compiler:</p>
<ol>
<li>Set the project to use Intel C++: 
<ul>
<li>Right click on the project name</li>
<li>Select "Intel Parallel Composer" or "Intel C++ Composer XE" from the pop-up menu, then select "Use Intel C++"</li>
</ul>
</li>
<li>Set the project to use Visual C++ compiler in project property dialog: 
<ul>
<li>Open project property dialog, select "General" tab</li>
<li>in the "Compiler and Environment Settings" field Select "Microsoft Visual C++ Compiler" </li>
</ul>
</li>
<li>Set the one hot-spot file (perf.cpp) to use Intel C++: 
<ul>
<li>Open perf.cpp's property dialog, select "General" tab</li>
<li>in the "Compiler and Environment Settings" field Select "Intel C++ Compiler"</li>
<li>If the precompiled header file is used, turn it off.</li>
</ul>
</li>
<li>Build the project. </li>
</ol>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-build-one-hotspot-file-with-intel-c-compiler-within-visual-studio-2005-2008-or-2010/</link>
      <pubDate>Wed, 01 Sep 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-build-one-hotspot-file-with-intel-c-compiler-within-visual-studio-2005-2008-or-2010/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-build-one-hotspot-file-with-intel-c-compiler-within-visual-studio-2005-2008-or-2010/</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Using C99 VLAs or the alloca function in Intel® Cilk™ Plus is not supported</title>
      <description><![CDATA[ Execution of code containing C99 variable length arrays or the alloca function in a cilk_for or cilk_spawn call or its continuation will likely cause runtime errors. ]]></description>
      <link>http://software.intel.com/en-us/articles/using-c99-vlas-or-the-alloca-function-in-intel-cilk-plus-is-not-supported/</link>
      <pubDate>Wed, 01 Sep 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-c99-vlas-or-the-alloca-function-in-intel-cilk-plus-is-not-supported/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-c99-vlas-or-the-alloca-function-in-intel-cilk-plus-is-not-supported/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Cilk™ Plus Runtime Library cilkrts20.dll/libcilkrts.so Can Only be Linked Dynamically</title>
      <description><![CDATA[ Code that uses the cilk_spawn, cilk_sync, cilk_for keywords or the reducer classes from Intel® Cilk™ Plus will be required to link against the cilkrts20.dll on Windows* or the libcilkrts.so on Linux*.  There is no static library version of the runtime.  Note that using -static or -fast (which implies -static) on Linux* with this code will result in linker errors.<br /><br />For an explanation of the problems associated with using a static runtime of a threading library like Cilk Plus or Intel® Threading Building Blocks, see the article at <a href="http://threadingbuildingblocks.org/wiki/index.php?title=Using_TBB#Is_there_a_version_of_TBB_that_provides_statically_linked_libraries.3F">http://threadingbuildingblocks.org/wiki/index.php?title=Using_TBB#Is_there_a_version_of_TBB_that_provides_statically_linked_libraries.3F</a>. ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cilk-plus-runtime-library-libcilkrts-can-only-be-linked-dynamically/</link>
      <pubDate>Wed, 01 Sep 2010 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cilk-plus-runtime-library-libcilkrts-can-only-be-linked-dynamically/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cilk-plus-runtime-library-libcilkrts-can-only-be-linked-dynamically/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>How to find which projects are set to use Intel C++ Compiler within Visual Studio 2010</title>
      <description><![CDATA[ <p>If you have used the Intel C++ Compiler 11.1 for Windows, or Intel Parallel Composer or Intel Parallel Composer 2011 in Visual Studio 2005* or Visual Studio 2008*, you may be familiar with the small purple icon displayed aside of the projects that are set to use Intel C++ like below that means the project has been set to use Intel C++ compiler:<br /> <img src="http://software.intel.com/file/29981" alt="Proj_icon.jpg" title="Proj_icon.jpg" /><br /><br />But when you use the Intel Parallel Composer 2011 or Intel C++ Composer XE with Visual Studio 2010*, you will <strong>not</strong> see this icon any more after you set the projects to use Intel C++. There is a limitation from Visual Studio 2010 when integrating such icon image. Below is what it looks even after setting the project to use Intel C++ compiler:  <br />  <img height="101" width="226" src="http://software.intel.com/file/29982" alt="Proj_icon_vs2010.jpg" title="Proj_icon_vs2010.jpg" /><br /><br />While we are exploring better solutions for solving this issue, we have created a macro tool to help you to find out which projects and configurations in the solution are using the Intel C++ compiler. <br /><br />Below is the steps on downloading/installing/using the macro tool:</p>
<ol>
<li>Download the macro tool by <a href="http://software.intel.com/file/30046">clicking here</a> (or download the attachment below) and extract the macro file "IntPkgMacros.vsmacros" to a location like [composer2011-install-dir]\Composer\VS Integration\C++</li>
<li>Open Visual Studio 2010 and load one of your application solution</li>
<li>Select menu "Tool -&gt; Macros -&gt; Load Macro Project" and select the above macro file<br /><img height="139" width="489" src="http://software.intel.com/file/29980" alt="LoadMacroProj.jpg" title="LoadMacroProj.jpg" /></li>
<li>Open the Macro Explorer window from menu "View -&gt; Other Windows -&gt; Macro Explorer" <ol type="a">
<li>in Macro Explorer, select IntPkgMacros -&gt; ListProjectsUisngIntelc, right click on "ListIntelPrjsActiveCfg", select "Run" <br /><img height="153" width="324" src="http://software.intel.com/file/29978" alt="MacroRun.jpg" title="MacroRun.jpg" /></li>
<li>when the macro finished work, you will see something like below in the output window: <br />
<blockquote>
<p>Intel-specific projects for all configurations<br />=================================================================<br />forTest\pi [Debug|Win32] --&gt; Intel Parallel Composer 2011<br />forTest\pi [Release|Win32] --&gt; Intel Parallel Composer 2011</p>
</blockquote>
<br />"forTest\pi" is the project "pi" under the folder "forTest". <br />[Debug|Win32] or [Release|Win32] is configuration. </li>
</ol></li>
</ol>
<p > </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-find-which-projects-are-set-to-use-intel-c-compiler-within-visual-studio-2010/</link>
      <pubDate>Tue, 31 Aug 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-find-which-projects-are-set-to-use-intel-c-compiler-within-visual-studio-2010/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-find-which-projects-are-set-to-use-intel-c-compiler-within-visual-studio-2010/</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>What are the differences in IDE Integration of Visual Studio 2010 and Visual Studio 2005/ 2008</title>
      <description><![CDATA[ The Intel(R) Parallel Composer 2011 and Intel C++ Composer XE Windows support Microsoft* Visual Studio 2010* standard edition or above. Because the support for 3rd party tools of Visual Studio 2010 is different than Visual Studio 2005* or 2008*, our IDE integrations are also different.
<p><br />The major differences of the IDE integrations are listed below:</p>
<p>
<table frame="border" width="753" cellpadding="0" cellspacing="0" border="2" >
<tbody>
<tr bgcolor="silver">
<td width="229" valign="top">
<p align="center"><b>Features</b></p>
</td>
<td width="331" valign="top">
<p align="center"><b>Visual Studio 2005 or 2008</b></p>
</td>
<td width="300" valign="top">
<p align="center"><b>Visual Studio 2010</b></p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Toolbar: <i>Intel Parallel Debugger Extension</i><i></i></p>
</td>
<td width="331" valign="top">
<p><img src="http://software.intel.com/file/29679" alt="idb_toolbar.jpg" title="idb_toolbar.jpg" /></p>
</td>
<td width="300" valign="top">
<p>Same as left</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Toolbar:<i> </i><i>Intel C++</i></p>
</td>
<td width="331" valign="top">
<p><img src="http://software.intel.com/file/29986" alt="icl_toolbar.jpg" title="icl_toolbar.jpg" /></p>
</td>
<td width="300" valign="top">
<p>None</p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Icon for project using Intel C++ compiler</p>
</td>
<td width="331" valign="top">
<p><img src="http://software.intel.com/file/29981" alt="Proj_icon.jpg" title="Proj_icon.jpg" /></p>
</td>
<td width="300" valign="top">
<p>None</p>
<p><img height="105" width="177" src="http://software.intel.com/file/29982" alt="Proj_icon_vs2010.jpg" title="Proj_icon_vs2010.jpg" /></p>
<p>Please <a href="http://software.intel.com/en-us/articles/how-to-find-which-projects-are-set-to-use-intel-c-compiler-within-visual-studio-2010/">see this article for alternative</a>.</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Project context menu</p>
</td>
<td width="331" valign="top">
<p><img height="73" width="295" src="http://software.intel.com/file/29985" alt="Proj_Context.jpg" title="Proj_Context.jpg" /><br />Or <br /><img height="77" width="298" src="http://software.intel.com/file/31953" alt="xe_vx2005_proj_menu.png" title="xe_vx2005_proj_menu.png" /></p>
</td>
<td width="300" valign="top">
<p>Same as left except no "Select Build Components" menu item.<b></b></p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Set a solution or project to use Intel C++ from command line</p>
</td>
<td width="331" valign="top">
<p>&gt;&gt; ICProjConvert120 myProj.sln /IC</p>
<p>&gt;&gt; ICProjConvert120 lib1.vcproj /IC</p>
<p> </p>
</td>
<td width="300" valign="top">
<p>None</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Set a solution or project to use Intel C++ within IDE</p>
</td>
<td width="331" valign="top">
<p>1. Select the solution or project or projects</p>
<p>2. Click on 2<sup>nd</sup> icon on <img src="http://software.intel.com/file/29986" alt="icl_toolbar.jpg" title="icl_toolbar.jpg" /></p>
<p>3. <b>Or</b> right click on the solution or selected project(s), select "Intel Parallel Composer 2011 -&gt; Use Intel C++" from Context Menu</p>
<p>4. <b>Or</b> click menu "Project", select "Intel Parallel Composer 2011 -&gt; Use Intel C++"</p>
</td>
<td width="300" valign="top">
<p>Same as left except #2 is not supported here.</p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Set only the hotspot file to use Intel C++</p>
<p><b>Note</b>: if the source file is set to use Precompiled Headers, change to "Not Using Precompiled Headers" before compiling from the file's property page.</p>
<p><b></b></p>
</td>
<td width="331" valign="top">
<p>1. Right click on the source file name "hotspot.cpp"</p>
<p>2. Select "Intel Parallel Composer 2011 -&gt; Use Intel C++ for Selected File(s)..." from Context Menu</p>
<p><img height="83" width="262" src="http://software.intel.com/file/29988" alt="set_single_file.jpg" title="set_single_file.jpg" /><br />or<br /><img height="93" width="276" src="http://software.intel.com/file/31955" alt="xe_vs2005_proj_menu2.png" title="xe_vs2005_proj_menu2.png" /></p>
</td>
<td width="300" valign="top">
<p>Same as left</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Use Intel IPP and Intel TBB in a project</p>
</td>
<td width="331" valign="top">
<p>Click 4<sup>th</sup> icon on <img src="http://software.intel.com/file/29986" alt="icl_toolbar.jpg" title="icl_toolbar.jpg" /></p>
</td>
<td width="300" valign="top">
<p>1. Open project(s) property dialog</p>
<p>2. Select "Intel Performance Libraries" tab right above "VC++ Directories" tab</p>
<p>** See the tab with orange oval in the picture below</p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Set Intel C++ Compiler specific options</p>
</td>
<td width="331" valign="top">
<p>Look for "Intel Specific" on each property page:</p>
<p><img height="134" width="300" src="http://software.intel.com/file/29989" alt="vs2005_prop.jpg" title="vs2005_prop.jpg" /></p>
</td>
<td width="300" valign="top">
<p>Look for tab name with "Intel":</p>
<p><img height="148" width="273" src="http://software.intel.com/file/29990" alt="vs2010_prop.jpg" title="vs2010_prop.jpg" /></p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Support batch mode build</p>
</td>
<td width="331" valign="top">
<p>Yes</p>
<p>&gt;&gt;Devenv.exe /rebuild "Debug|Win32" hello.sln /out "build.out" /IntelSpecific Intel "Intel(R) C++ 12.0.xxx"</p>
<p> </p>
</td>
<td width="300" valign="top">
<p>No</p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>Support MSBuild</p>
</td>
<td width="331" valign="top">
<p>No</p>
</td>
<td width="300" valign="top">
<p>Yes</p>
<p>&gt;&gt;msbuild nq-serial.vcxproj /t:rebuild /p:configuration=release</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>Setting default options for all projects using Intel C++ compiler</p>
</td>
<td width="331" valign="top">
<p>From Tools Options dialog, select "Intel C++"</p>
<p><img height="160" width="293" src="http://software.intel.com/file/29991" alt="vs2005_opt.jpg" title="vs2005_opt.jpg" /></p>
</td>
<td width="300" valign="top">
<p>Similar to left, added "Convert" page with default settings for converting .icproj data created for VS2005/2008 project into .vcxproj for VS2010 project:</p>
<p><img height="143" width="280" src="http://software.intel.com/file/29992" alt="vs2010_opt.jpg" title="vs2010_opt.jpg" /></p>
</td>
</tr>
<tr>
<td width="229" valign="top">
<p>What happens when setting a project to use Intel C++</p>
</td>
<td width="331" valign="top">
<p>1. .sln is modifed to load the Intel C++ IDE packages.</p>
<p>2. .vcproj file is not modified.</p>
<p>3. A .icproj file is created for each .vcproj file to store Intel C++ specific options; if a .icproj already exists, it will be reused when switching to Intel C++.</p>
</td>
<td width="300" valign="top">
<p>1. .sln is not modified</p>
<p>2. .vcxproj is modified</p>
<p>3. The Intel C++ specific options are stored in .vcxproj file</p>
</td>
</tr>
<tr bgcolor="#e8f1f8">
<td width="229" valign="top">
<p>What happens if you uninstalled Intel Parallel Composer 2011, but forgot to reset the project back to use Visual C++</p>
</td>
<td width="331" valign="top">
<p>1. The project can not be loaded.</p>
<p>2. You need to use "ICProjConvert120.exe" to reset from command line</p>
<p>&gt;&gt; ICProjConvert120.exe hello.sln /VC</p>
</td>
<td width="300" valign="top">
<p>1. The project will load, but will not compile.</p>
<p>2. You just need to change the "Platform toolset" on the Project Property page to "v100"</p>
<p><img height="183" width="279" src="http://software.intel.com/file/29993" alt="vs2010-prop-2.jpg" title="vs2010-prop-2.jpg" /></p>
</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/what-are-the-differences-in-ide-integration-of-visual-studio-2010-and-visual-studio-2005-2008/</link>
      <pubDate>Tue, 31 Aug 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/what-are-the-differences-in-ide-integration-of-visual-studio-2010-and-visual-studio-2005-2008/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/what-are-the-differences-in-ide-integration-of-visual-studio-2010-and-visual-studio-2005-2008/</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Using C/C++ Atomics</title>
      <description><![CDATA[ <p class="sectionHeading">Introduction</p>
<p>The Intel® C++ Compiler 12.0 available in Intel® Parallel Composer 2011 and Intel® C++ Composer XE now supports the atomic data types.  These standard data types provide a standard way of implementing fine grained atomic locking in C and C++ which can be useful for many different parallel methodologies, from native threads to Intel® Threading Building Blocks to OpenMP* to Intel® Cilk™ Plus.  This article covers the basic syntax and how it works to ensure threadsafe accesses of shared data.</p>
<p class="sectionHeading">Atomics Requirements</p>
<ul>
<li>Intel® Parallel Composer 2011</li>
<li>#include the &lt;atomic&gt; or &lt;stdatomic.h&gt; header files</li>
</ul>
<p class="sectionHeading">atomic_flag</p>
<p>The atomic_flag data type is the basis for all atomic data types.  It provides two operations that can be done atomically - a test and set operation, and a clear operation.  The flag is a bool that is set to 0 when clear() is used.  For test_and_set, the current value of the bool is returned and then the flag is set to 1.<br /><br />The syntax for this is:</p>
<divre name="code" class="cpp"></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>std::atomic_flag x; <br />bool y = x.test_and_set();<br />x.clear();
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<divre></divre>
<pre></pre>
<br /><br />
<div class="sectionHeading">Other atomic data types</div>
<p>In short, void* (as atomic_address), bool (atomic_bool), and various char/integer types are supported.  These can also be alternatively declared in C++ using atomic&lt;T&gt; where T is void*, bool, or the char/int type.<br /><br /><b>atomic_bool supports the following operations:</b><br /><br />bool load()<br />-- Atomically return the value of atomic_bool.  Can also happen when using the "=" assignment operator or during conversions.<br /><br />void store(bool)<br />-- Atomically set the value of atomic_bool.  Can also happen when using the "=" assignment operator or during conversions.<br /><br />bool exchange(bool)<br />-- Atomically swap the values of the current atomic_bool with the boolean input.  Return the old value of the atomic bool.<br /><br />bool compare_exchange_weak(bool &amp; expected, bool desired)<br />-- Atomically: compare the current value of atomic_bool with expected.  If equal, set atomic_bool value to value of desired and return true.  If not equal, set expected to desired value and return false.  Intended for use in loops.<br /><br />bool compare_exchange_strong(bool &amp; expected, bool desired)<br />-- Atomically: compare the current value of atomic_bool with expected. If equal, set atomic_bool value to value of desired and return true. If not equal, set expected to desired value and return false. Intended for use outside of loops.<br /><br /><b>atomic_address supports the above atomic_bool operations for void* types, and also the following:</b><br /><br />Operator +=(void*)<br />-- Atomically increment the atomic_address by the input number of bytes and store<br /><br />Operator -=(void*)<br />-- Atomically decrement the atomic_address by the input number of bytes and store<br /><br /><b>Other atomic types:<br /><br />The other types that are supported:</b></p>
<ul>
<li>atomic_char16_t</li>
<li>atomic_char32_t</li>
<li>atomic_wchar_t</li>
<li>atomic_char</li>
<li>atomic_schar</li>
<li>atomic_uchar</li>
<li>atomic_short</li>
<li>atomic_ushort</li>
<li>atomic_int</li>
<li>atomic_uint</li>
<li>atomic_long</li>
<li>atomic_ulong</li>
<li>atomic_llong</li>
<li>atomic_ullong</li>
</ul>
<br /><br /><b>These data types support the atomic_bool and atomic_address functions above for their data type, plus the following:<br /></b><br />Operator ++:<br />-- Atomically increment by 1<br /><br />Operator --:<br />-- Atomically decrement by 1<br /><br />Operator &amp;= (T)<br />-- Atomically bitwise-and with input and store<br /><br />Operator |= (T)<br />-- Atomically bitwise-or with input and store<br /><br />Operator ^= (T)<br />-- Atomically bitwise-xor with input and store<br /><br />
<p class="sectionHeading">Technical Support</p>
<p>Visit our online Community Support User Forums and Knowledge Base to get all of the help you need from our own tools and parallelism experts, and your fellow developers. Go to<a href="http://software.intel.com/en-us/articles/intel-software-developer-support/">http://software.intel.com/en-us/articles/intel-software-developer-support/</a>to start your search.</p>
<br /><br /><img height="126" width="173" src="http://software.intel.com/file/7233" alt="Intel logo" /><br /><br />For product and purchase information visit:<br /><br /><a href="http://intel.com/software/products">http://intel.com/software/products</a><br /><br />Intel and the Intel logo, are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.<br /><br />*Other names and brands may be claimed as the property of others.<br /><br />INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice.<br /><br />Copyright © 2010, Intel Corporation. All Rights Reserved.
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-cc-atomics/</link>
      <pubDate>Tue, 31 Aug 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-cc-atomics/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-cc-atomics/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>AES-NI support in Intel® IPP</title>
      <description><![CDATA[ <p>The Advanced Encryption Standard New Instructions (AES-NI) introduced in the new generation of Core i7 processors (Westmere microarchitecture) offer a significant increase in performance on cryptography and data compression. Please see this <a href="http://software.intel.com/en-us/articles/advanced-encryption-standard-aes-instructions-set/">AES techinal article </a>for more information about AES-NI.<br /><br />Intel IPP 6.1 update 2 include optimizations for the AES-NI instructions, which are improved consistantly in later version. Discussions in the article I<a href="http://software.intel.com/en-us/articles/new-nehalem-support/">ntel® Core<sup>TM</sup> i7 processor Support</a> and in forum <a href="http://software.intel.com/en-us/forums/showthread.php?t=71133">AES-NI support for Westmere</a> are clarified below.<br /><br /><strong>1.The "p8" (IA32) and "y8" (Intel 64) IPP architectures include AES-NI optimizations for Westmere.</strong> <br /><br />If you build your application with IPP 6.1 update 2 or higher on a Westmere microarchitecture processor, the p8/y8 code will use code that has been optimized for your processor. The following functions in the Intel IPP cryptography add-on library are optimizied for Westmere (in IPP 6.1 update 2 and later):<br /><br />ippsRijndael128{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br />ippsRijndael128CCM{Encrypt|Decrypt},<br />ippsRijndael128GCMProcess{IV|AAD}<br /><br />ippsRijndael192{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br />ippsRijndae256{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br /><br />ippsDAARijndael128Update, ippsDAARijndael128Final<br />ippsDAARijndael192Update, ippsDAARijndael192Final<br />ippsDAARijndael256Update, ippsDAARijndael256Final<br /><br />ippsXCBCRijndael128Update, ippsXCBCRijndael128Final<br /><br />The functions below are also optimized for Westmere and starting in IPP 6.1 update 3:<br /><br />ippsCRC32_8u<br />ippsCRC32_BZ2_8u<br /><br />You may need to update your IPP version to take full benefit of IPP library optimizations for the Westmere microarchitecture. Run the <em>cpuinfo</em> sample in the <em>ipp-samples/advanced-usage/cpuinfo</em> folder on your Westmere processor to ensure the p8 or y8 code is recommended as the library architecture to be used.<br /><br /><strong>2. Penryn (SSE4.1), Nehalem (SSE4.2) and Westmere (AES-NI) share the same optimized IPP library: "p8" (for IA32) and "y8" (for Intel 64).</strong> <br /><br />Please see the article <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/">Understanding CPU Dispatching in the Intel® IPP Library</a> for more information about the IPP library dispatching mechanism.<br /><br />The AES-NI instructions introduced with the Westmere microarchitecture processors are beneficial mostly to cryptography algorithms and a small subset of data compression algorithms. Rather than increase the size of the IPP library by adding a new IPP architecture with a limited set of functions that can take advantage of these new instructions, we extended the run-time dispatcher to check for support of AES-NI and branch to AES-optimized code within the Core i7 optimized library. <br /><br /><strong>3. AES performance test on Westmere<br /></strong>The application note <a href="http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/"><b>Boosting OpenSSL AES Encryption with Intel® IPP </b></a><a target="_blank" href="http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/feed/"></a> provide some performance data of IPP AES functions comparing with OpenSSL AES Encryption. <br /><br />Also the article <a href="http://software.intel.com/en-us/articles/performance-of-crypto-sample-for-openssl-slowing-down-on-hyper-threading-systems/">IPP Crypto Sample Performance for OpenSSL too Slow on Hyper-Threading Systems</a> describe more information on performance test method. In summary, use one of the following solutions to insure appropriate results:</p>
<li>disable Intel HT Technology (usually done via a configuration switch in the BIOS) and set the KMP_AFFINITY=compact</li>
<li>disable multi-threading by linking with the static single-threaded version of the Intel IPP library if HT is enable</li>
<li>disable multi-threading within the multi-threaded Intel IPP libraries by calling <em>ippSetNumThreads(1)</em> if HT is enable</li>
<li>configure OpenMP to use 1/2 of the available logical threads if HT is enable <em>and</em> set the KMP_AFFINITY environment variable as follows: <em>KMP_AFFINITY=granularity=fine, compact,1,0</em> </li>
<p><br />The Intel® C/C++ Compiler version 11 also includes support for AES-NI, see <a href="http://software.intel.com/en-us/articles/how-to-compile-for-the-intel-core-i5-processor-with-aes-ni/">How to Compile for the Intel® Core<sup>TM</sup> i5 processor with AES-NI</a>, as does Microsoft* Visual Studio* 2008 Service Pack 1 compiler and gcc version 4.4.<br /><br /><strong>How to Download the Cryptography Library Add-on for the Intel IPP Library</strong></p>
<p>The cryptography component of the IPP library is subject to US Export Administration Regulations and other US laws. To obtain the Intel IPP cryptography libraries, which must be downloaded separately, <a s_oid="https://registrationcenter.intel.com/regcenter/dplrequestgen.aspx?productid=1338" s_oidt="0" target="_blank" href="https://registrationcenter.intel.com/regcenter/dplrequestgen.aspx?productid=1338">register for eligibility</a> and follow the instructions you receive in the registration email. If you have additional questions review this knowledge base article on <a target="_blank" href="http://software.intel.com/en-us/articles/download-ipp-cryptography-libraries">how to download the cryptography library</a> component of the IPP library.</p>
<p>You must have a valid Intel IPP license key to install and use the Intel IPP libraries.</p>
<p>To see an advantage of AES-NI optimization in the crypto engine, refer to <a href="http://software.intel.com/en-us/articles/demo-advantage-of-westmere-crypto-acceleration-engine/">AES-NI demo</a>. </p>
<p>
<table cellpadding="5" cellspacing="0" rules="none" border="1">
<tbody>
<tr>
<th align="left" valign="middle" >Optimization Notice</th>
</tr>
<tr bgcolor="#ccecff">
<td>
<p>Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.</p>
<p align="right">Notice revision #20110804</p>
</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/</link>
      <pubDate>Fri, 05 Feb 2010 09:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Being Successful with the Intel® Compilers -- You Need to Know</title>
      <description><![CDATA[ <br />
<hr />
<div class="sectionHeading">Introduction</div>
<p>This article is intended to assist developers new to the Intel compilers on how to get maximum performance on IA-32, Intel® 64 and Itanium® processor platforms on the Microsoft Windows*, Linux*, and Mac OS* X operating systems.</p>
<p>Answers to common questions customers have about Intel compilers are provided. The following sections discuss how to use the compilers and what to do if you encounter problems, including some troubleshooting techniques. This article also presents a high-level discussion of some of the available optimizations with tips for improving performance.</p>
<!--page break-->
<hr />
<div class="sectionHeading">Does it compile the source?</div>
<p>First, see whether your source code will compile with the appropriate Intel compiler. On the Windows side, Intel® Parallel Composer and the Intel C++ Compiler for Windows* Professional Edition are source and object compatible with the Microsoft Visual C++* compiler, so they compile source code that the Microsoft Visual C++ compiler can compile. The Intel Visual Fortran Compiler for Windows is <a href="http://software.intel.com/file/30630">substantially source compatible </a>with Compaq Visual Fortran* and conforms to the Fortran 95, Fortran 90, and Fortran 77 standards.</p>
<p>The Intel C++ Compilers for Linux and Mac OS X are object compatible with GNU* C and C++. The Intel Fortran Compilers for Linux and Mac OS X also conforms to the Fortran 95, Fortran 90, and Fortran 77 standards.</p>
<!--page break-->
<hr />
<div class="sectionHeading">What if the compiler rejects the source?</div>
<p>If the compile fails, check your source code for unsupported language extensions. For example, if you are compiling a file with a GNU gcc language extension - an extension the Intel compiler does not support - the compiler issues a syntax error. Similarly, for Fortran, if you are compiling code that violates the Fortran 95, Fortran 90, or Fortran 77 standards or contains language extensions the compiler doesn't recognize, the Intel compiler issues a syntax error. The best way to solve this type of problem is to rewrite the source code, so that it either conforms to the standards or doesn't contain unsupported extensions. Do note, the Intel compiler may give errors for non-compliant source code even in cases where it may be accepted by other compilers.</p>
<!--page break-->
<hr />
<div class="sectionHeading">Does the program run?</div>
<p>Once the application is built, typically the next step is to run it with a set of tests. The tests are run to ensure outputs are correct.</p>
<!--page break-->
<hr />
<div class="sectionHeading">What if some tests fail?</div>
<p>If some tests fail, try compiling the files of the application being tested using <b>/Od</b> (Windows) or <b>-O0</b> (Linux/Mac) to turn off the optimizer. Optimizations are discussed below.</p>
<p>If the test still fails using <b>/Od</b>, there likely is a problem in the source code. It is also possible that the compiler is generating incorrect code. Should that happen, please report the problem to Intel.</p>
<!--page break-->
<hr />
<div class="sectionHeading">What optimization should I use?</div>
<p>The basic optimization switches of the Intel compilers are:</p>
<ul>
<li><b>-Od</b> or <b>-O0</b> (no optimizations) </li>
<li><b>-O1</b> (optimize for speed while focusing on code size) </li>
<li><b>-O2</b> (optimize for speed) </li>
<li><b>-O3</b> (optimize for speed and perform aggressive optimizations). </li>
</ul>
<p>It is recommended that you use <b>-O2</b> optimizations if possible. The Intel compilers default to use <b>-O2</b>. Using <b>-O3</b>, the compiler performs aggressive optimizations, so make sure to run your application tests to ensure all your tests pass at <b>-O3</b>.</p>
<!--page break-->
<hr />
<div class="sectionHeading">How do I target a particular processor?</div>
<p>Refer to the article at <a href="http://software.intel.com/file/26833">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations/</a></p>
<!--page break-->
<hr />
<div class="sectionHeading">What about advanced optimizations?</div>
<p>Interprocedural optimizations (-ipo and /Qipo) improve performance within a file and across a multi-file program. The optimizations performed include function inlining, interprocedural constant propagation, dead code elimination, and others.</p>
<p>Profile guided optimizations (-prof_use and /Qprof_use) can be used to improve the performance of a program by passing run-time information back to the compiler. This can be used to improve branch prediction, cache utilization, and make better choices of functions to inline.</p>
<p>It is always a good practice to test your application when using aggressive compiler optimizations like Interprocedural Optimizations and Profile Guided Optimizations. Issues with these optimizations are more difficult to debug than those with standard optimizations.</p>
<!--page break-->
<hr />
<div class="sectionHeading">My Program Runs Successfully with /Od but Fails with /O2. What Should I Do?</div>
<p>If your program runs successfully with <b>/Od</b> but fails with <b>/O2</b>, the next step is to determine which files are causing the problem. Problematic files can then be compiled with <b>-Od</b>. A divide-and-conquer strategy would be beneficial here. First, compile half the files (for example files that start with a-m) with <b>/O2</b> and the rest with <b>/Od</b>. If the program passes the tests, then the problem is somewhere in the files starting with n-z, and files a-m can be compiled with <b>/O2</b>. See the next section,"Should I worry about precision?"</p>
<!--page break-->
<hr />
<div class="sectionHeading">Should I worry about precision?</div>
<p>When the optimizer is turned on, there may be a minor loss or gain of precision. For example, on IA-32, a double-precision floating-point value is stored as 80 bits in the x87 FPU registers, and intermediate calculations are carried out to this precision. When a value is stored to memory from the x87 FPU registers, it is rounded to declared precision. If your code is sensitive to slight variations in precision, its behavior may change under optimization. You can either add the <b>-fp-model precise</b> (in Linux/Mac) or <b>/fp:precise</b> (in Windows) switches to enforce IEEE precision, or you can rewrite the code. These switches may have a performance impact on your application. For more details please see the article, <a href="http://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler/">Consistency of Floating Point Results using the Intel(R) Compiler.</a></p>
<!--page break-->
<hr />
<div class="sectionHeading">My Program Runs Slowly - What Should I Do?</div>
<p>The software version of the "80/20 rule" is that 80% of a program is spent in 20 %of the code. It is recommended that you obtain a performance analysis tool that will show you where exactly your program spends its time. Intel offers the VTune™ Performance Analyzer and Intel® Parallel Amplifier tools for this purpose. The analysis shows you exactly which lines of your program are taking most of the execution time and provides you with tips for improving your code.</p>
<!--page break-->
<hr />
<div class="sectionHeading">Conclusion: What To Do If You Still Have Questions?</div>
<p>Intel wants you to be successful in your use of its compilers. We encourage you to submit any questions or issues in the appropriate compiler <a href="http://software.intel.com/en-us/forums/">User Forum</a>.  However, if you believe you have a technical issue or need 1:1 attention, a year of product support through Intel Premier Support is included with all purchases, and Intel Premier Support is also provided as part of the 30-day evaluation process. Please register for support <a href="https://registrationcenter.intel.com/RegCenter/Register.aspx">here</a>, then once you have registered, please login <a href="https://premier.intel.com/">here</a> and submit your issue. A developer support engineer will get back to you within one business day.</p>
<p>When submitting a compile time problem, please submit a test case with your issue. In the case of a C++ issue, submit a pre-processed file using the /P (Windows) or -E (Linux/Mac OS X) options. Note that a preprocessed file will contain any code in your source file and also any included header files that's not eliminated by #if processing.  If you don't submit a test case, we will attempt, where feasible, to construct one with the symptoms you provide, but reproducing these is often difficult. When submitting a run-time issue, it is preferred that you send us the function in your program that is failing along with a driver that calls the function and demonstrates the failure.</p>
<p>For performance related issues, wherever possible, please determine the source of the problem using a performance analyzer like the VTune Performance Analyzer. One thing to keep in mind: in general, the smaller the test case you submit the more quickly a support engineer and the engineering team will be able to address your problem.</p>
<p>In all cases, please give us your complete compiler options used or Visual Studio project, and linker options and runtime arguments/environment settings if applicable.</p>
<!--page break-->
<hr />
<div class="sectionHeading">Related Resources</div>
<ul>
<li><a href="http://software.intel.com/en-us/articles/intel-software-evaluation-center/">Evaluate the Intel Compilers for free. </a></li>
<li>Get more information about <a href="http://software.intel.com/en-us/intel-compilers/">Intel Compilers</a>, <a href="http://software.intel.com/en-us/intel-parallel-composer/">Intel® Parallel Composer</a>,<a href="http://software.intel.com/en-us/intel-vtune/"> VTune™ Performance Analyzer </a>and <a href="http://software.intel.com/en-us/intel-parallel-amplifier/">Intel® Parallel Amplifier</a> Information available includes product overviews, case studies, getting started guides, and compatibility information. </li>
<li>Join our developer community at the <a href="http://software.intel.com/en-us/forums/">User Forums</a>.</li>
<li>Explore our <a href="http://software.intel.com/en-us/articles/tools/">Knowledge Base</a>.<!--page break--></li>
</ul>
<table cellpadding="5" cellspacing="0" rules="none" border="1">
<tbody>
<tr>
<th align="left" valign="middle" >Optimization Notice</th>
</tr>
<tr bgcolor="#ccecff">
<td>
<p>Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.</p>
<p align="right">Notice revision #20110804</p>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/being-successful-with-the-intel-compilers-you-need-to-know/</link>
      <pubDate>Mon, 14 Dec 2009 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/being-successful-with-the-intel-compilers-you-need-to-know/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/being-successful-with-the-intel-compilers-you-need-to-know/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>
