<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 15:05:19 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-parallel-composer-kb/type/tips-and-techniques/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-parallel-composer-kb/tips-and-techniques/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Application crashes when using Boost* Libraries V1_40_0 built with Intel(R) C++ Compilers 11.x for Windows*</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b><br /><br />Some applications linked with Boost* libraries version 1_4_0 built with the Intel(R) C++ Compilers 11.0 and 11.1 may experience runtime errors.  The programs run fine when they are built with the /MDd or /MTd options.  They also run fine when they are built with the Microsoft* Compiler with or without the above options.<br /><br />Below are two sample programs that exhibit the runtime error:<br /><br />
<p><strong><span style="text-decoration: underline;">Example 1<br /></span></strong></p>
<pre name="code" class="cpp">#include &lt;boost/regex.hpp&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

int main()
{
   std::string line;
   boost::regex pattern("^Subject:(Re: |Aw: )*(.*)");

   while(std::cin)
   {
      std::getline(std::cin,line);
      boost::smatch matches;
      if(boost::regex_match(line,matches,pattern))<br />      std::cout&lt;&lt;matches[2]&lt;&lt;std::endl;<br />
   }
}

</pre>
<br /><br /><strong>&gt; icl /EHsc t1.cpp /IC:\boost_1_40_0 /link /LIBPATH:C:\boost_1_40_0\stage\lib<br /></strong>Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1 Build 20090930 Package ID: w_cproc_p_11.1.048<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><br />When the above program is run it reports:<br /><strong>Assertion failed: px != 0, file C:\boost_1_40_0\boost/smart_ptr/shared_ptr.hpp,<br />line 412<br /></strong><br /><strong><span style="text-decoration: underline;">Example 2<br /></span></strong>
<p><strong></strong>Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035<br />Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.</p>
<pre name="code" class="cpp">#include &lt;iostream&gt;
#include &lt;boost/program_options.hpp&gt;
using namespace std;
using namespace boost::program_options;

int main(int argc, char* argv[])
{
 options_description opt("option");
 opt.add_options()
   ("help,h",                                  "help");

  cout &lt;&lt; opt &lt;&lt; endl;
  return 0;
}

</pre>
<p><strong>&gt; icl /EHsc t2.cpp /IC:\boost_1_40_0 /link /LIBPATH:C:\boost_1_40_0\stage\lib</strong></p>
<br />When the above program is run it crashes due to unhandled access violation exception at:<br /><strong>&gt; t2.exe!shared_count::~shared_count()  Line 217 + 0x3 bytes C++<br /></strong><br /><strong><br />Environment : </strong>All Windows* Operating Systems<br /><br /><br /><b>Root Cause : </b><br /><br />When building using the Intel compiler, the macro <strong>-D_SECURE_SCL</strong> is defined to 0.  When building with the Microsoft compiler, this is not specified, and defaults to a value of 1.  This is what is largely contributing to the difference in the run-time behavior between the icl and cl generated codes.  The macro was defined differently in the configuration file to disable Microsoft "secure" overloads in Dinkumware* libraries since they caused compile errors with Intel compiler versions 9.x and 10.x  This is no longer an issue  starting with Intel compiler version 11.0 and higher.  <br /><br /><b>Resolution : </b><br /><br />The solution is to modify the jam file in your boost installation under <strong>tools\build\v2\tools\intel-win.jam</strong> and change the definition to <strong>_SECURE_SCL=1</strong> and rebuild the Boost libraries like:<br /><br /><strong>C:\boost_1_40_0&gt;bjam --build-dir=c:\boost_1_40_0 toolset=intel --build-type=complete stage<br /></strong><br />Another solution is to build the application with icl but link to the boost* libraries built with the Microsoft* compiler as shown in the KB article at
<p><a href="http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-fatal-link-error-lnk1104-when-using-intel-c-compiler-with-boost-libraries/">http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-fatal-link-error-lnk1104-when-using-intel-c-compiler-with-boost-libraries/</a></p>
<br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-boost-libraries-with-intelr-c-compilers-11x-for-windows</link>
      <pubDate>Wed, 25 Nov 2009 11:52:54 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-boost-libraries-with-intelr-c-compilers-11x-for-windows#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-boost-libraries-with-intelr-c-compilers-11x-for-windows</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Redistributable libraries for the Intel(R) Parallel Composer</title>
      <description><![CDATA[ <p><strong class="sectionHeading">Overview<br /></strong><br />This article contains links to the redistributable installation packages for the Intel Parallel Composer. <br /><br />The redistributable packages are for the end users who use applications that are built with Intel Parallel Composer. Please note that there is one redistributable package for every update. Make sure you download and install the one recommended by the application vendor. <br /><br /><span class="sectionHeading">OS requirement of the redistributable packages for Intel Parallel Composer<br /></span><br />The supported OS are: Windows XP*, Vista*, Windows Server 2003*, Windows Server 2008*.<br /><br /><span class="sectionHeading">Installation instructions<br /></span><br />The redistributable package is a .zip file that contains two redistributable setup programs: one for IA32; one for Intel 64. <br /><br />The installation program will guide you through the installation. You will need to accept the license and the installation will install all the libraries to the fixed directory. <br /><br />The installation directory is <br />[Common Files]\Intel\Shared Files\cpp <br /><br />The installation will add the above directory to your environment variable "path" as well.</p>
<p>If you wish to install the redistributable package "<strong>silently</strong>", so that no output is presented to the user, run the executable with the following options added to the command line:<br />&gt;&gt; composer_update3_redist_XXXX.exe /S /V/qn<br /><br /><span class="sectionHeading">Links to the redistributable packages<br /></span></p>
<br /><br />
<table border="1" cellpadding="0" cellspacing="0" style="width: 450px; height: 150px;">
<tbody>
<tr>
<td valign="top"><b>Intel Parallel Composer update 2-revised: </b><br /><a href="http://registrationcenter.intel.com/irc_nas/1602/composer_update2_revised_redist.zip">• Redistributable library package</a><br /></td>
</tr>
<tr>
<td valign="top"><b>Intel Parallel Composer update 3: </b><br /><a href="http://registrationcenter.intel.com/irc_nas/1622/composer_update3_redist.zip">• Redistributable library package</a><br /></td>
</tr>
<tr>
<td valign="top">Currently we do not have redistributable packages for Intel® IPP or Intel® TBB. When they're available, this article will be modified to include them. <br /></td>
</tr>
</tbody>
</table>
<br /><br />
<div></div>
<p><span class="sectionHeading">References<br /></span><br /><a href="http://software.intel.com/en-us/articles/faq-intel-parallel-composer-redistributable-package/">FAQ Intel® Parallel Composer Redistributable Package</a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/redistributable-libraries-of-the-intelr-parallel-composer</link>
      <pubDate>Mon, 16 Nov 2009 16:19:16 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/redistributable-libraries-of-the-intelr-parallel-composer#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/redistributable-libraries-of-the-intelr-parallel-composer</guid>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Libraries (libm.lib, libmmt.lib, libmmd.lib, libiomp5mt.lib, libiomp5md.lib, libirc.lib, libircmt.lib, svml_disp.lib, svml_dispmd.lib ...) provided by Intel(R) C++ Compiler for Windows and Intel Parallel Composer</title>
      <description><![CDATA[ <p><br /><span class="sectionBodyText"><span class="sectionBodyText">This table lists the libraries provided by Intel® C++ Compiler for Windows version 11.1 and by Intel Parallel Composer. The top heading includes the compile options that should be used so you can find how to use each library from this table. </span></span><span class="sectionBodyText"><span class="sectionBodyText"><br /><br />If you get unresolved symbols that should be from the Intel libaries, please make sure the correct library is linked. Those libraries are installed under [install-dir]\lib\ia32 or [install-dir\lib\intel64. <br /></span><br /></span></p>
<table border="1" width="704" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Library description</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"><b>Static library</b></p>
</td>
<td width="120" valign="bottom">
<p align="center"><b>Multi-threaded <br />static library (/MT)</b></p>
</td>
<td width="121" valign="bottom">
<p align="center"><b>Multi-threaded dynamic library (/MD)</b></p>
</td>
<td width="111" valign="bottom">
<p align="center"><b>Multi-threaded static library <br />(built with /MD)</b></p>
</td>
<td width="119" valign="bottom">
<p align="center"><b>Debug <br />Multi-threaded <br />dynamic library (/MDd)</b></p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Math library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center">libm.lib</p>
</td>
<td width="120" valign="bottom">
<p align="center">libmmt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center">libmmd.lib<br />libmmd.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center">libmmds.lib</p>
</td>
<td width="119" valign="bottom">
<p align="center">libmmdd.lib <br />libmmdd.dll</p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>OpenMP* runtime library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center">libiomp5mt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center">libiomp5md.lib<br />libiomp5md.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>OpenMP profiling runtime library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center">libiompprof5mt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center">libiompprof5md.lib<br />libiompprof5md.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>OpenMP stubs runtime library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center">libiompstubs5mt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center">libiompstubs5md.lib <br />libiompstubs5md.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>CPU dispatch library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center">libirc.lib</p>
</td>
<td width="120" valign="bottom">
<p align="center">libircmt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center"> </p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Short vector math library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center">svml_disp.lib</p>
</td>
<td width="120" valign="bottom">
<p align="center">svml_dispmt.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center">svml_dispmd.lib <br />svml_dispmd.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Asynchronous I/O library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center"> libicio.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center"> </p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Intel® IEEE* 754-2008 decimal floating-point <br />math library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center"> libdecimal.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center"> </p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Intel support library for PGO</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center"> libipgo.lib</p>
</td>
<td width="121" valign="bottom">
<p align="center"> </p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
<tr>
<td width="147" valign="bottom">
<p align="center"><b>Parallel debugger extension runtime library</b></p>
</td>
<td width="87" valign="bottom">
<p align="center"> </p>
</td>
<td width="120" valign="bottom">
<p align="center"> </p>
</td>
<td width="121" valign="bottom">
<p align="center">pdbx.lib<br />pdbx.dll</p>
</td>
<td width="111" valign="bottom">
<p align="center"> </p>
</td>
<td width="119" valign="bottom">
<p align="center"> </p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Libraries included on the table: libm.lib, libmmt.lib, libmmd.lib, libmmds.lib, libmmdd.lib, libiomp5mt.lib, libiomp5md.lib, libiompprof5mt.lib, libiompprof5md.lib, libiompstubs5mt.lib, libiompstubs5md.lib, libirc.lib, libircmt.lib, svml_disp.lib, svml_dispmt.lib, svml_dispmd.lib, libicio.lib, libdecimal.lib, libipgo.lib, pdbx.lib and libguide40.dll, libguide40_stats.dll, libiomp5md.dll, libiompprof5md.dll, libiompstubs5md.dll, libmmd.dll, libmmdd.dll, libompstub40.dll, pdbx.dll, svml_dispmd.dll.</p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/libraries-provided-by-intelr-c-compiler-for-windows-and-intel-parallel-composer</link>
      <pubDate>Tue, 27 Oct 2009 13:56:48 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/libraries-provided-by-intelr-c-compiler-for-windows-and-intel-parallel-composer#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/libraries-provided-by-intelr-c-compiler-for-windows-and-intel-parallel-composer</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Introduction to the IDE integration of Intel(R) Parallel Composer</title>
      <description><![CDATA[ <object height="640" width="800" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="src" value="http://software.intel.com/file/23314" />
<param name="controller" value="true" />
<param name="autoplay" value="false" />
<param name="autostart" value="false" /><embed autoplay="false" controller="true" autostart="false" src="http://software.intel.com/file/23314" type="application/x-shockwave-flash" height="640" width="800"></embed>
</object> ]]></description>
      <link>http://software.intel.com/en-us/articles/introduction-to-the-ide-integration-of-intelr-parallel-composer</link>
      <pubDate>Mon, 26 Oct 2009 13:55:41 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/introduction-to-the-ide-integration-of-intelr-parallel-composer#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/introduction-to-the-ide-integration-of-intelr-parallel-composer</guid>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Unable to read and write using C++ file stream </title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b><br />For years in Fortran95, I've been reading and writing files into various directories of my choice, thus keeping our data files in an orderly fashion. However, now I am shocked to find that you can't do anything like that in C++. <br /><br />Please tell me if there is a way, and give me an example.<br /><br /><b>Environment : </b><br />Intel C++ compiler for Linux*<br /><br /><b>Resolution : </b><br /><br />This is not a compiler issue. You need to have suitable access rights to the file. You can take help from system administrator to get suitable access rights for the file. I am providing a sample test case that I tried at my end in FC11 box. It works without issue.<br /><br />
<pre name="code" class="cpp">// file_rw.cpp
//

#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
    char str[2000] ;
    fstream fs( "/testdir/prt1.txt", ios::in ) ;

    if(!fs) {
        cout &lt;&lt; "Cannot open input file.\n";
        return 1;
    }

    fstream ft( "/testdir/prt2.txt", ios::out | ios::in ) ;
    if(!ft) {
        cout &lt;&lt; "Cannot open output file.\n";
        return 1;
    }

    while ( !fs.eof() )
    {
        fs.getline(str, 2000 ) ;
        ft &lt;&lt; str &lt;&lt; endl;
    }
    fs.close () ;
    ft.close ();
    return 0;
}</pre>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/unable-to-read-and-write-using-c-file-stream</link>
      <pubDate>Sun, 23 Aug 2009 23:36:07 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/unable-to-read-and-write-using-c-file-stream#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/unable-to-read-and-write-using-c-file-stream</guid>
      <category>Intel® Parallel Composer</category>
      <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>Parallel Implementation Methods with Intel® Parallel Composer Webinar Q&amp;A</title>
      <description><![CDATA[ <p>Q&amp;A from <a href="https://event.on24.com/event/36/88/3/rt/1/index.html."><strong>Webcast</strong></a>: The webinar "Parallel Implementation Methods with Intel® Parallel Composer" was presented by Ganesh Rao, March 31<sup>st</sup>, 2009, as part of our technical webinar series about Multithreading tools and techniques. The following questions were selected from the list of questions and answers generated by this web cast, and may be useful to other developers as reference.</p>
<p><b>Q:  </b><b>SSE2 is a standard and it is supported by AMD. Why is it set as "Intel </b><b>Processor Specific <br />     Optimization?<br /></b><b>A:  </b>The<b> </b>Intel® C++ compiler can generate code targeting any processor with SSE2 instruction set support, <br />     using /Qax:SSE2 or can generate code that is optimized for Intel processors with SSE2 support using /QxSSE2. <br />     The latter offers more optimizations and it does a cpu check when the application is executed.<br /><b><br />Q:  </b><b>Do you need to #include&lt;omp.h&gt; to be able to use #pragma omp?<br /></b><b>A:  </b>No, but you need to include omp.h if you want to call the OpenMP APIs such as omp_get_num_threads(), <br />     omp_thread_num(), etc.<br /><b><br />Q:  </b><b>If </b><b>I am using omp dlls, will concurrent omp applications (processes) </b><b>compete for CPU resources the <br />     same way as it is when I use static omp </b><b>libraries?<br /></b><b>A:  </b> Testing shows there is practically no performance advantage to linking mulitple processes with the static OpenMP runtime, as opposed to linking with the dynamic runtime (uses DLLs), which is the default.  But in either linking scenario, you have to be careful not to oversubscribe the machine if using multiple OpenMP processes.  With multiple, independent OpenMP processes running on a host, the OpenMP runtime library execution mode should be 'throughput' (environment variable KMP_LIBRARY), which is the default.  On the other hand, if you have a dedicated host, the runtime library execution mode should be 'turnaround', which will minimize the execution time of a single OpenMP process.<br /><b><br />Q:  </b><b>How is the binary compatibility between the Intel compiler and the </b><b>Visual Studio compiler maintained when VS only supports OpenMP 2.5?<br /></b><b>A:  </b>If you want to use any new features in OpenMP 3.0, you have to use the Intel® Parallel Composer, but if you only <br />     use the features from OpenMP 2.5, you can use Visual C++ 2005 or 2008 or the Intel Parallel Composer. Please <br />     refer to this knowledge base article for more information at:<br />           <a href="http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows/">http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows/</a></p>
<p> <b>Q:  May be it's better to use 4 threads for 2 cores? (i.e. Number threads = </b><b>Number Cores * 2?<br /></b><b> A:  </b>Probably not unless the machine is hyperthreaded, and hyperthreading is enabled in the BIOS; otherwise you will <br />      oversubscribe the machine.  In general shouldn't give any OpenMP process more than the number of machine logical threads (number-of-processors * number-of-cores/processor * number-of-threads/core), and in fact you might find it better to limit the total of number of OpenMP threads to something less.  Testing shows that the <br />      performance penalty by oversubscribing the machine can be severe.  In general, it is OK to use all the machine's logical threads for one OpenMP process (and this is the default, unless you explicitly change the number by setting OMP_NUM_THREADS or by calling omp_set_num_threads()), but depending on your host usage scenario, you should set the environment for 'throughput' (multiple OpenMP processes running) or 'turnaround' (single, dedicated OpenMP process).<br /><b><br />Q:  </b>What is the difference between using omp parallel task versus using omp parallel sections calling a task?<br /><b>A:  </b>Calling a task within a section just creates extra overhead and cannot control and synchronize the tasks since <br />     each parallel section is independent of each other. OpenMP 3.0 tasking is more flexible and efficient compared to <br />     using parallel sections.  With parallel sections, there is no way to coordinate the task in each section, so it is not <br />     possible to determine whether one section will be executed before another, regardless of which section comes first <br />     in the program source.  On the other hand, the task directive can take an "if" clause to cause the task to be <br />     executed immediately or be deferred; a thread can be "hard wired" to a task (called "tied"), or can be "untied", <br />     which allows any available thread in the thread pool to start executing the task.  Tasking has much better <br />     performance and scalability for nested parallel and recursive algorithms, compared to parallel sections.  There is <br />     much more overhead creating and destroying the nested parallel regions (parallel sections tasking), versus <br />     executing tasks which are all created by a single parallel region containing a task directive.  You can control the total number of threads (OMP_NUM_THREADS) with tasking, whereas with nested parallel regions (sections), with each newly created region you get OMP_NUM_THREADS new threads, and that can easily oversubscribe the host.<br /><b><br />Q:  Do you have a favorite textbook about OpenMP that you </b><b>recommend?<br /></b><b>A:  </b>Please look at the "Related Information" section in the product user guide where there is a mention of associated <br />     Intel Documents. A good recommended book to look at: "Using OpenMP: Portable Shared Memory Parallel <br />     Programming" by Barbara Chapman, Gabriele Jost, and Ruud van der Pas</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/parallel-implementation-methods-with-intel-parallel-composer-webinar-qa</link>
      <pubDate>Wed, 19 Aug 2009 17:10:55 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/parallel-implementation-methods-with-intel-parallel-composer-webinar-qa#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/parallel-implementation-methods-with-intel-parallel-composer-webinar-qa</guid>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
    </item>
    <item>
      <title>How am I notified of updates for my registered products?</title>
      <description><![CDATA[ <p> </p>
<div><b>Problem : </b><br />How am I notified of updates for my registered products?<br /><br /><b>Resolution : </b><br />1) Login to the Intel® Registration Center by entering your Login ID and Password in the Registered Users Login section  of  the web page. You will see a list of all products you have subscribed;<br />2) Click on My account/Change notification preference on My products page below.<br /><br /><img src="http://software.intel.com/file/21592" alt="Notifacation+update+1.PNG" title="Notifacation+update+1.PNG" /><br /><br />3) You will be directed to the page below, check the box of <label for="ctl00_MainContentPlaceHolder_ckYesFilesNotification">Yes, I would like to receive Intel® Software Product update notifications.<br /><img src="http://software.intel.com/file/21593" alt="Notifacation+update+2.PNG" title="Notifacation+update+2.PNG" /><br /><br />4) Click Save Notification Prefences.<br /><br />You will then receive the registered product update notifications.</label></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-notified-updates-for-products</link>
      <pubDate>Mon, 10 Aug 2009 00:40:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-notified-updates-for-products#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-notified-updates-for-products</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® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit 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® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Software Development Products Registration Center Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Linux* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Getting the product running with my new license</title>
      <description><![CDATA[ <p class="sectionHeading"><span class="sectionHeading">Before installing the product (no matter what type of license you have):</span></p>
<ol>
<li><a href="http://software.intel.com/en-us/articles/locate-my-serial-number/">Find your Serial Number (SN) </a></li>
<li><a href="http://software.intel.com/en-us/articles/register-products-serial-number/">Register the SN</a> </li>
<li>Download the product from the <a href="https://registrationcenter.intel.com/RegCenter/Register.aspx">Intel Registration and Download center</a> </li>
</ol>
<p>Then the next steps are different based on your license type.</p>
<p><strong class="sectionHeading">If you have a counted license, you have to do following:</strong></p>
I. Set up the license server <br /><ol>
<li><a href="http://software.intel.com/en-us/articles/license-manager-for-flexlm-users-guide/">Read the Intel License Manager for FLEXlm* User's Guide</a> </li>
<li>Find the right system for the license server</li>
<li><a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-flexlm-license-servers">Download the correct FLEXlm server for license servery system</a></li>
<li>Install the FLEXlm server: 
<ul>
<li>after installation, the license server should start running automatically</li>
<li>As for how to manually start or stop the FLEXlm license server, please refer to the FLEXlm user's guide </li>
</ul>
</li>
</ol>II. Install the product on the client systems <br /><ol>
<li><a href="http://software.intel.com/en-us/articles/licensing-setting-up-the-client-floating-license/">Set up the client license</a> </li>
<li>On Windows, just run the downloaded product package program. It will automatically extract the package and start the installation. </li>
<br />&gt;&gt; w_cproX_11.1.XXX.exe
<li>On Linux* or Mac OS* X, use following commands to install: </li>
<br />$ tar -xzvf l_cproX_11.1.XXX.tgz<br />$ ./install.sh </ol>
<p><strong class="sectionHeading">If you have a single user license, just follow the simple steps below:</strong></p>
<ol>
<li>The easies way to install is to use your SN. You can find the SN in the email when you purchase the product. See <a href="http://software.intel.com/en-us/articles/find-my-serial-number/">this KB on where to find your SN</a>.</li>
<li>To use the license file to install 
<ul>
<li>Save the license file sent to you by email to a directory [lic-dir]\mylic_file.lic </li>
On Windows, we use [common files]\intel\licenses folder as the default license folder<br />On Linux or Mac OS X, we use /opt/intel/licenses directory as the default license directory<br /><br />
<li>Set up an environment variable to this file: </li>
<br />On Windows, use <br />&gt;&gt; set INTEL_LICENSE_FILE=[lic-dir]\mylic_file.lic<br /><br />On Linux or Mac OS, use <br />$ export INTEL_LICENSE_FILE=[lic-dir]\mylic_file.lic<br />
</ul>
</li>
<li>Install the product</li>
<br />On Windows, run the downloaded product package program like below. Use either the license file or SN to install. <br />&gt;&gt; w_cproX_11.1.XXX.exe<br /><br />On Linux or Mac OX X, use following commands: <br />$ tar -xzvf l_cproX_11.1.XXX.tgz<br />$ ./install.sh <br /></ol>
<p><strong class="sectionHeading"><br />References and useful KB articles:</strong></p>
<ol>
<li><a href="http://software.intel.com/en-us/articles/intel-license-manager-for-flexlm-kb/all/1/">Intel® License Manager for FLEXlm* Knowledge Base</a></li>
<li><a href="http://software.intel.com/en-us/articles/how-do-i-combine-multiple-license-files/">How do I Combine Multiple License files?</a></li>
<li><a href="http://software.intel.com/en-us/articles/redundancy-server-notes/">Redundancy server notes - Floating/Nodelocked license </a></li>
<li><a href="http://software.intel.com/en-us/articles/flexlm-installed-OS/">Should Intel license manager for FLEXlm be installed on the same OS machine as that the license is limited to?</a></li>
<li><a href="http://software.intel.com/en-us/articles/how-do-i-upgrade-from-an-evaluation-to-a-full-commercial-version-single-user-node-locked-or-counted/">How do I upgrade from an evaluation to a full commercial version (single-user or floating)?</a></li>
<li><a href="http://software.intel.com/en-us/articles/change--serverhost-data-node-locked-or-floating-license/">How do I change the Server/Host data I provided for my node locked or floating license?</a></li>
<li><a href="http://software.intel.com/en-us/articles/install-product-without-internet-access/">How can I install my product without internet access?</a></li>
<li><a href="http://software.intel.com/en-us/articles/installing-license-server-on-vista/">Installing license server on Vista or Windows Server 2008</a></li>
<li><a href="http://software.intel.com/en-us/articles/product-download/">Where can I download the latest version of my product?</a></li>
<li><a href="http://software.intel.com/en-us/articles/products-and-versions-my-license-supports/">How can I determine which products and versions my license supports?</a></li>
<li><a href="http://software.intel.com/en-us/articles/evaluation-software-product-serial-number-to-activate/">Installing the eval product</a></li>
</ol> ]]></description>
      <link>http://software.intel.com/en-us/articles/getting-the-product-running-with-my-new-license</link>
      <pubDate>Tue, 04 Aug 2009 11:48:50 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/getting-the-product-running-with-my-new-license#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/getting-the-product-running-with-my-new-license</guid>
      <category>ISN General</category>
      <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® License Manager for FLEXlm* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>How to create a preprocessed file (.i file)</title>
      <description><![CDATA[ <p>Usually when there's a compiler bug, we will need a testcase. Otherwise we won't be able to find the problem and verify the fix. <br /><br />Because we won't be able to have the same environment as yours, we will need either a testcase or a preprocessed file (.i file). <br /><br />Sometimes a small testcase may not always duplicate the problem. And also you may not have the time to create a testcase. So a preprocessed file would work in such case.</p>
<p><br /><strong>Note </strong>about a proprocessed file (.i file): it contains all the source code in original .cpp/.c as well as all the needed header files. The compiler (icl or cl) generates the code based on the compile options and include files. So the .i file generated by icl.exe is most likely different than the one generated by cl.exe.<br /><br />To create a preprocessed file (.i file), just add "-EP -P" to the compile option, and recompile the original .cpp file.  You can also generate a .i file directly from the "Prepocessor" property in Visual Studio*:</p>
<ul>
<li>Right click the file name, and click properties</li>
<li>Click Preprocessor\Generate Preprocessed File\Without Line Numbers (/EP /P)</li>
</ul>
<p>if you recompile from a command window, the .i file will be created under the current directory.</p>
<p>if you recompile from within the Visual Studio* IDE, the .i file will be created under the directory where the original source file is located.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-create-a-preprocessed-file-i-file</link>
      <pubDate>Thu, 23 Jul 2009 09:29:11 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-create-a-preprocessed-file-i-file#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-create-a-preprocessed-file-i-file</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Set TBB&amp;#39;s INCLUDE and LIB paths automatically</title>
      <description><![CDATA[ <p><strong>Problem Description:</strong> Intel® Parallel Composer Initial Release (<em>http://software.intel.com/en-us/intel-parallel-composer/</em>) consists of Intel® Threading Building Blocks (TBB) component. After the user installed the product, then build a project which uses TBB include files and libraries, the compiling error occurred such as "<strong>catastrophic error: could not open source file "tbb/task_scheduler_init.h"</strong> "</p>
<p><strong>Old Solution:</strong> The user can solve this problem by setting TBB paths manually in Visual Studio* - "<strong>Tools\Options\Projects and Solutions\VC++ Directories\Include files</strong>", and "<strong>Tools\Options\Projects and Solutions\VC++ Directories\Library files</strong>". For example, the user inserts new item "C:\Program Files\Intel\Parallel\Studio\Composer\tbb\include", and "C:\Program Files\Intel\Parallel Studio\Composer\tbb\ia32\vc9\lib" (for Microsoft* Visual Studio* 2008) respectively. The problem has gone.<br /><strong><img src="http://software.intel.com/file/21255" alt="TBB-1.bmp" title="TBB-1.bmp" /></strong></p>
<p>This change will effect in all VC++ projects, we changed VS environments.</p>
<p><strong>New Solution:</strong> The user also can use Parallel Composer's new feature - <strong>"Project\Intel Parallel Composer\Select Build Components"</strong> to check on <strong>"Use TBB"</strong> and click "Apply" button. After doing this, the user can verify Paths enabled in project's "<strong>Property Pages</strong>", See new items in "<strong>C/C++\General\Additional Include Directories</strong>", and "<strong>Linker\Additional Library Directories</strong>".</p>
<p><strong><img src="http://software.intel.com/file/21256" alt="TBB-2.bmp" title="TBB-2.bmp" /></strong><br /><br /><strong><img src="http://software.intel.com/file/21257" alt="TBB-3.bmp" title="TBB-3.bmp" /></strong><br />Note that this change effects on your project only. The benefit is that the user doesn't need to find exact TBB installed directories, Parallel Composer does it for you!   </p>
<p> </p>
<p><em>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</em></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/set-tbbs-include-and-lib-paths-automatically</link>
      <pubDate>Mon, 20 Jul 2009 01:16:23 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/set-tbbs-include-and-lib-paths-automatically#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/set-tbbs-include-and-lib-paths-automatically</guid>
      <category>Intel® TBB</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
  </channel></rss>