<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 16:39:30 -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/technical-notes/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/technical-notes/</link>
    <description></description>
    <language>en-us</language>
    <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>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>
    <item>
      <title>Different result of Volatile variables between icc and vc</title>
      <description><![CDATA[ <div id="art_pre_template"><b>Problem : </b><br /><br />We used keyword "volatile" as below when defining a variable,:<br /><br />volatile int i=5; <br /><br />The volatile has multiple meanings. To a compiler writer it means to take no code generation shortcuts when accessing such an object. "Volatile" is reminder to compiler to not suppose or guess some conditions when optimized, the variable could be change by some unexpected elements anytime. <br /><br />So, the variable i should be stored in SRAM, every time we used it, we read it from SRAM. <br /><br />Let's see a simple case: <br /><br />// tstcase.c<br />include &lt;stdio.h&gt;<br />include &lt;stdlib.h&gt;<br /><br />void foo()<br />{<br />volatile int i=1, j=1;<br />i=(i++)+(j++)+2;<br />j=i=i++;<br />printf("i=%d,j=%d\n",i,j);<br /><br />}<br /><br />Using Intel C++ compiler, result is:<br /><br />i=3,j=2 (same result with gcc)<br /><br />Using VC compiler, result is <br /><br />i=6,j=5 <br /><br />I thinks that i=(i++)+(j++)+2 was translated to:<br /><br />Intel C++ compiler:<br /><br />t=t+t1+2; (t is equal to 4)<br />t++; (t is equal to 1, then execute t++, t is equal to 2)<br />t1++; (t1 is equal to 2)<br />Then, j=i=i++;<br />Output is i=3,j=2<br /><br />Microsoft C++ compiler :<br /><br />t=t+t1+2; (t is equal to 4)<br />t++; (t is equal to 5)<br />t1++; (t1 is equal to 2)<br />Then, j=i=i++;<br />Output is i=6,j=5. <br /><br />If we did not use Volatile, we got same result(i=6,j=5) no matter which compiler used. If integrated Intel C++ compiler to VS2008, compiled both with VC and icl , we got different result. <br /><br /><b>Environment : </b><br />Windows, Linux , Intel C++ compiler, Microsoft C++ compiler, gcc<br /><br /><b>Root Cause : </b><br />The statements use language constructs that have undefined behaviour according to C/C++ standard:<br /><br /><b>Resolution : </b><br /><br />The test uses language constructs that have undefined behaviour according to C/C++ standard:<br /><br />&gt;&gt;&gt; i=(i++)+(j++)+2;<br />&gt;&gt;&gt; j=i=i++;<br /><br />The value of i is being modified more than once between two sequence points. Refer to the rules for expressions (section 5, paragraph 4 of the ISO C++ standard):<br /><br />"Except where noted, the order of evaluation of operands of<br />individual operators and subexpressions of individual<br />expressions, and the order in which side effects take place,<br />is unspecified. Between the previous and next sequence<br />point a scalar object shall have its stored value modified at<br />most once by the evaluation of an expression. Furthermore,<br />the prior value shall be accessed only to determine the value<br />to be stored. The requirements of this paragraph shall be met<br />for each allowable ordering of the subexpressions of a full<br />expression; otherwise the behavior is undefined. <br /><br />[Example:<br />i = v[i++]; // the behavior is unspecified<br />i = 7, i++, i++; // i becomes 9<br />i = ++i + 1; // the behavior is unspecified<br />i = i + 1; // the value of i is incremented<br />-end example]"<br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc</link>
      <pubDate>Mon, 13 Jul 2009 23:20:19 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc</guid>
      <category>Intel® Parallel Composer</category>
      <category>Intel® Compilers</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>Questions and Answers from webinar &amp;#34;Image Processing: Stop Developing Code from Scratch&amp;#34;</title>
      <description><![CDATA[ <p>The following is a selected list of questions and answers from one of Intel® Parallel Studio webinars "<b><i>Image Processing: Stop Developing Code from Scratch</i></b>", we thought these may be useful to other developers as reference. If you are interested in taking this recorded webinar, please register it <a href="https://event.on24.com/event/36/88/3/rt/1/index.html?&amp;eventid=36883&amp;sessionid=1&amp;key=D76A2FD29D7444AEC06765011A2D4953&amp;sourcepage=register">here.</a> </p>
<p><b>Q:</b> Could you comment on Linux* usage of these tools?<br /><b>A:</b>  Intel® Parallel Studio is mainly targeted to the Windows* C/C++ developers. Intel also offers other software solutions to support Linux, please find more information on other operating systems support at <a href="http://software.intel.com/en-us/intel-sdp-home/">Intel Software Development Product website</a> (including Intel® Integrated Performance Primitives product)</p>
<p><b>Q:</b> What are the licensing terms for using Intel® Integrated Performance Primitive (Intel® IPP) in commercial products? What about demo / prototype products?<br /><b>A:</b> Please refer to Intel Software Products end user license agreement document at <a href="http://software.intel.com/en-us/articles/intel-software-development-products-license-agreement/">http://software.intel.com/en-us/articles/intel-software-development-products-license-agreement/</a>. <br /><br />Also, licensing policy questions are documented in Intel IPP knowledge Base at, <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-faq/">http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-faq/</a> <br /><br />Free code samples/demo are located at <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/</a></p>
<p><b>Q:</b> Novice question: With all the efficiency (over handwritten C/C code) that the Intel IPP brings in does it close-in to the performance of image processing and allied ASICs or is it that ASICs are in a totally different level of solution space?<br /><b>A:</b> When you call Intel IPP , you do not need to deal with ASIC level as the Intel IPP libraries are internally implemented in ASIC, it is transparent for users.</p>
<p><b>Q:</b> Can you control when Intel IPP will use threading?<br /><b>A:</b> Yes, you can control threading in Intel IPP by calling ippSetNumThreads() function. Check more on Intel IPP threading FAQs at: <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-threading-openmp-faq/">http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-threading-openmp-faq/</a></p>
<p><b>Q:</b> In the H.264 example showing performance improvement from 1 thread to 8 threads, is this data on single core? OR multiple threads mean multiple cores in the underlying hardware?<br /><b>A:</b> Multiple threads on multi core machine.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/questions-and-answers-from-webinar-ipp</link>
      <pubDate>Wed, 01 Jul 2009 15:00:18 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/questions-and-answers-from-webinar-ipp#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/questions-and-answers-from-webinar-ipp</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
    </item>
    <item>
      <title>Questions and Answers from webinar &amp;#34;Go-Parallelism! Ease the Onramp for C/C++ Windows* Development&amp;#34;</title>
      <description><![CDATA[ <p>The following is a selected list of questions and answers from 1st webinar "<b><i>Go-Parallelism! Ease the Onramp for C/C++ Windows</i></b>* <b><i>Development</i></b>", we thought these may be useful to other developers as reference. If you are interested in taking this recorded webinar, please register it <a href="https://event.on24.com/event/36/88/3/rt/1/index.html?&amp;eventid=36883&amp;sessionid=1&amp;key=D76A2FD29D7444AEC06765011A2D4953&amp;sourcepage=register">here.</a></p>
<p><b>Q:</b> Can you tell Intel® Parallel Inspector to ignore the system DLLs? They probably don't contain threading errors, wouldn't you expect?<br /><b>A:</b> Yes, but most are already ignored by default.  Suppressions can be used to suppress any errors reported in any DLL, source file, or function.  See the <b>Defining Private Suppression Rules</b> topic in the Parallel Inspector help for more information.<br /><br /><b>Q:</b> Can you comment on the compatibility of OpenMP* with Windows Threads?<br /><b>A: </b>The short answer is that you can create your own threads and that won't interfere with the threads created by the OpenMP runtime. It's OK to mix.<b></b></p>
<p><b>Q:</b> I have tried running Intel® Parallel Amplifier on an interactive Embedded system and it quickly fails to start. What I would like to do is profile execution for a period of time and then get an analysis. Any tips for how to work with this type of application? <br /><b>A:</b> You can read this article at: <a href="http://software.intel.com/en-us/articles/how-to-analyze-a-portion-of-your-application/">http://software.intel.com/en-us/articles/how-to-analyze-a-portion-of-your-application/</a> for more reference.  Or share your thoughts or questions on embedded system at Intel Parallel Studio Forum at <a href="http://software.intel.com/en-us/forums/intel-parallel-studio/">http://software.intel.com/en-us/forums/intel-parallel-studio/</a>. <br /><br /><b>Q:</b> Can I use Intel® Fortran Compiler with Intel Parallel Studio?<br /><b>A:</b>  Intel® Parallel Studio is designed and targeted and tested for C++ software. The analysis is based on the binary not the source, how well it works with Fortran may vary. Please be aware that in addition to Intel Parallel Studio product, Intel offers a HPC line of products that offer full support for Fortran.  This includes the Intel® Fortran compiler of course, but also Intel® VTune<sup>TM</sup> Performance Analyzer and Intel® Thread Checker.  The Intel® Math Kernel Library also includes full Fortran interfaces to BLAS, LAPACK, FFT and other common numerical algorithms.  Most Fortran developers use the HPC line of Intel products.<b> </b>You may find other Intel software tools for Fortran at <a href="http://software.intel.com/en-us/intel-compilers/">Intel® Compiler Professional Edition</a></p>
<p><b>Q:</b> Can Intel Parallel Studio help us detect cache thrashing? Which is one of the bottlenecks of multi-core programming?<br /><b>A: </b>No. Intel VTune Performance Analyzer can monitor processor specific events and detect cache misses.  You may find Intel VTune Performance Analyzer better suited to this type of analysis.<b></b></p>
<p><b>Q:</b> What about cross-compiling and Mac OSX*/Linux* support?<br /><b>A:</b> Intel Compilers are also available for Linux and Mac OS X. Intel Linux and Mac compilers are source and binary compatible with gcc and share the backend optimizer support including OpenMP. You will not be able to cross-compile between OSs. Please see intel.com/software/products for additional information.</p>
<p><b>Q:</b> Can I use Intel Parallel Studio to compile with Microsoft* Foundation Classes (MFC) based applications?<br /><b>A:</b> Yes. Intel Parallel Composer is compatible with Microsoft Visual Studio native. So as long as the MFC does not contain code with attributes or common language runtime (CLR), you can use Parallel Studio.</p>
<p><b>Q:</b> Does the Intel Parallel Studio encompass all the usage of Intel VTune Performance Analyzer? Can Intel Parallel Studio replace Intel VTune Performance Analyzer usage?<br /><b>A: </b>Check <a href="http://software.intel.com/sites/products/collateral/studio/Amplifier_VTune_Comparison.pdf">this article</a> for more details</p>
<p><b>Q:</b> Sure your product target is Intel Platform how about other brand CPUs. When we use your product it will also work in other CPUs without problem and same performance?<br /><b>A: </b>Intel® Parallel Studio runs on platforms with "an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions (Intel® Pentium 4 processor or later, or compatible non-Intel processor</p>
<p><b>Q:</b> How long does it take to finish the amplifier and inspector analysis on a large application (32 MB)? I have been running one for hours, and it is still going.<br /><b>A:</b> These should be separated.  Intel Parallel Inspector will be long and depending on the analysis time you select it could be 50X slower.  Intel Parallel Amplifier should not be as intrusive.  If you are seeing orders of magnitude slower response times with Intel Parallel Amplifier please let us know about it.  </p>
<p><b>Q:</b> What happens if you have an application with languages other than C++? Can you still analyze it with Parallel Studio? What if a deadlock happens in your VB code, for example?<br /><b>A:</b> Parallel Studio is focused on C/C at this time (it works with C code), so the thread checking part called Parallel Inspector will not help for VB code.</p>
<p><b>Q:</b> Some operating systems like AIX* allow application developers to have threads to be rescheduled on the same processor -- does this tool presently (or a later version may) capture processor cache hits/misses?<br /><b>A:</b> Processor architectural information is captured by our HPC product line - Intel VTune Performance Analyzer can capture information about processor events such as cache misses and is the recommended product for looking at processor events.</p>
<p><b>Q:</b> Will there be command line version of these tools?<br /><b>A:</b> Intel Parallel Composer does provide command line support.</p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/questions-and-answers-webinar1-go-parallelism</link>
      <pubDate>Wed, 01 Jul 2009 11:49:50 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/questions-and-answers-webinar1-go-parallelism#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/questions-and-answers-webinar1-go-parallelism</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>Q&amp;A from Webinar: Find Errors in Windows* C++ Parallel Applications</title>
      <description><![CDATA[ <strong>On April 14, 2009 Bernth Andersson presented a technical session and live demo webinar focusing on the Intel(R) Parallel Debugger Extension and it's use for identifying parallel coding issues and run-time problems related to concurrency. Below are questions that came up during this webinar and answers to those questions.  <br /><br />Q1. Can you disable a single specific parallel region? <br /></strong>
<blockquote>
<p>A: The "Serialize Parallel Region" option of the Intel(R) Parallel Debugger extensions temporarily sets the OpenMP* omp_set_num_threads() environment variable to 1, thus forcing single threaded execution even on a multi-core system. This temporary change applies to the next parallel block or parallel region in your code relative to the current EIP or program counter location.<br /><br />Thus, yes - the "Serialize Parallel Region" option can be applied to a specific parallal region of your choice. You can do so by setting a breakpoint just before you enter the parallel region you would like to have executed as a single serial thread and then selecting the serialization option from the Intel(R) Parallel Debugger Extension menu inside Microsoft* Visual Studio. </p>
</blockquote>
<br /><strong>Q2. Do the Parallel Debugger Extensions only support OpenMP* or also native Windows* threads or Threading Building Blocks?  </strong><br />
<blockquote>A: Most of the Parallel Debugger Extension features like Thread Data Sharing Event Detection, Function Reentrancy Detection amd Serialize Parallel Region, rely on instrumentation of debug information and on the OpenMP* library. As such these features are currently only available for OpenMP* based threading. The one feature that is independent of the threading model used are the enhanced and highly configurable SSE register windows.</blockquote>
<br /><strong>Q3. Do the Intel(R) Parallel Debugger Extensions use similar instrumentations as the Intel(R) Parallel Inspector?  <br /></strong>
<blockquote>A: The debug symbol information instrumentation done by the Intel(R) C++ Compiler when the /debug:parallel option is set along with /Zi is different from the code instrumentations used by the Intel(R) Parallel Inspector for it's instrumentation assisted operating mode.<br />The Intel(R) Parallel Debugger Extensions do not rely on executable code instrumentation, but rather on instrumentation of the symbol information used for debugging. As such the Parallel Debugger Extensions cannot statically anaylze the execution flow, but rely on a detectable event that may be of interest happening at real time during a debug session. At the same time, because only the debug information is instrumented there should only be very minimal performance impact on the execuatble if run outside the Microsoft* Visual Studio Debugger.</blockquote>
<br /><strong>Q4. Is the compiler option /Qpenmp required for use of the Intel(R) Parallel Debugger Extension?</strong>
<blockquote>A: Yes, all enhanced parallelism features of the Intel(R) Parallel Debugger Extensions rely on OpenMP* based threading, except for the SSE register windows.</blockquote>
<br /><strong>Q5.  Do the Intel(R) Parallel Debugger Extensions require the use of the Intel(R) Compiler?</strong>
<blockquote>A: Yes, the Parallel Debugger Extensions rely on debug info instrumentation added with the Intel(R) Compiler option /debug:parallel in conjunction with /Qopenmp. Therefore the full capabilities of the Intel(R) Parallel Debugger Extensions are only available when used with the Intel(R) Compiler.</blockquote>
<br /><strong>Q6. Can I use the Intel(R) Parallel Debugger Extensions to debug parallelism in the Intel(R) Integrated Performance Primitives and to serialize execution in them?</strong>
<blockquote>A: In principle yes, BUT this would require rebuilding and relinking the Intel(R) IPP with symbol information and /debug:parallel. Since you are most likely taking the primitives from prebuilt libraries that you link into your project, this not really a supported usage model, although it may work in some cases depending on how the call to the Intel(R) IPP function of your choice is embedded in the rest of your application.<br />The short answer thus is really no, with some exceptions.</blockquote>
<strong><br />Q7.  Does the OpenMP* library have to be linked in statically? Can 3rd party OpenMP* libraries be used?</strong><br />
<blockquote>A: The OpenMP* library can be linked in statically or dynamically into your application build for the use of the Intel(R) Parallel Debugger Extension. The OpenMP* library used by the Intel(R) C++ Compiler is really a standard OpenMP* library. However, there is the dependency on the debug information instrumentation using /debug:parallel. This instrumentation has only been tested and is only expected to work with the OpenMP* libraries provided with the Intel(R) Compiler.</blockquote>
<br /><strong>Q8. What is the main benefit of the SSE Register Window? Does it depend on OpenMP*?</strong>
<blockquote>A: The SSE Register Window allows you to group the display of the register contents and display said contents in the exact way that you are using it in your parallelized loops, your structured arrays or other parallel structures. By doing this the highly configurable SSE Register Window provides you with the link between your data as it is used in your application and the way this very same data is actually stored and processed in the SSE registers.<br /><br />This can be quite valuable for understanding more complex heavily parallel multimedia or graphics code for instants.<br /><br />This feature does not rely on any instrumentation or any specific threading implementation. It is independent of OpenMP*. </blockquote>
<br /><strong>For additional questions please also refer to the Intel(R) Parallel Debugger Extension article and whitepaper at <a target="_blank" href="http://software.intel.com/en-us/articles/parallel-debugger-extension/" title="Intel(R) Parallel Debugger Extension Article">http://software.intel.com/en-us/articles/parallel-debugger-extension/</a></strong> ]]></description>
      <link>http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications</link>
      <pubDate>Tue, 30 Jun 2009 16:56:46 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications</guid>
      <category>Parallel Programming</category>
      <category>Intel® Compilers</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Excerpts from Intel IPP 2nd Edition Book on Threading Support</title>
      <description><![CDATA[ <p>With more Multi-core , many-core based systems available on the market, there are more interest to understand how Intel IPP covers threading support.  Mainly we cover threading support in 2 levels: one is inside of Intel IPP API primitives, some of Intel IPP are internally threaded, (check this KB for more details), another one is in high leve via Intel IPP Samples, a lot of application implementations in Intel IPP Sample offering also adopt OpenMP or Native threading mechanism to maximize performance for image coding, video coding and more on Intel Multi-core and many-core based systems. You can find more details when evaluating <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">Intel IPP Samples.</a><br /><br />In addtion to that, the Intel IPP 2nd Edition book also explains a variety of threading support in different usage models, Download 4 excerpts from this edition where explains how to use threading in Graphics, Image processing, Image coding and video coding. <br /><br />Please also visit <a target="_blank" href="http://www.intel.com/intelpress/sum_ipp2.htm">Intel Press </a>for more info on Intel IPP book.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/excerpts-from-intel-ipp-book-on-threading-support</link>
      <pubDate>Mon, 22 Jun 2009 23:19:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/excerpts-from-intel-ipp-book-on-threading-support#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/excerpts-from-intel-ipp-book-on-threading-support</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Abstract class type  not allowed as a type for parameter</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Problem : <br /></strong>I encounter an error when compiling "parameter of abstract class type "type" is not allowed", as described in http://software.intel.com/en-us/articles/cdiag646/. Does anybody know why and how to fix it?<br /><br /><strong>Environment : <br /></strong>Windows, Linux, Mac and Intel C++ compiler.<br /><br /><br /><strong>Resolution : </strong><br /><br /><br />The problem is you are trying to declare a parameter that has the type of an abstract base class.<br /><br />Abstract classes are designed to be only interfaces to real classes because they have one or<br />more pure virtual functions, i.e.:<br />class abstract {<br />virtual void foo() = 0; // pure virtual function since it is declared with = 0<br />};<br />void foo(abstract); // not allowed since the class is abstract<br /><br />The workaround would be to only use pointers or references to the abstract class as parameters, or change the type to a non-abstract class that is derived from the abstract class or change the class so it is no longer abstract, i.e. define the virtual functions instead of declaring them pure virtual.<br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/abstract-class-type-not-allowed-as-a-type-for-parameter</link>
      <pubDate>Sun, 14 Jun 2009 23:02:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/abstract-class-type-not-allowed-as-a-type-for-parameter#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/abstract-class-type-not-allowed-as-a-type-for-parameter</guid>
      <category>Intel C++ Compiler and Performance Library for QNX* Neutrino* RTOS Knowledge Base</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>ISO/IEC Standards language conformance for Intel C++ compiler</title>
      <description><![CDATA[ The Intel C++ compiler option /Qstd=val or –std=val could be used to get the specific version of ISO/IEC standards language conformance for the compiler. <br /><br />The possible values are for “val” are given below:<br /><br />c89 - Conforms to the ISO/IEC 9899:1990 International Standard.<br /><br />c99 - Conforms to The ISO/IEC 9899:1999 International Standard.<br /><br />gnu89 - Conforms to ISO C90 plus GNU* extensions.<br /><br />gnu++98 - Conforms to the 1998 ISO C++ standard plus GNU extensions.<br /><br />c++0x - Enable support for the following C++0x features. Please refer to Intel C++ compiler documentation for details.<br /><br />The default for Intel C++ compiler 11.0 are as given below:<br /><br />-std=gnu89 - default for C, Conforms to ISO C90 plus GNU extensions.<br />-std=gnu++98 - default for C++, Conforms to the 1998 ISO C++ standard plus GNU* extensions.<br />/Qstd=c89 - Conforms to the ISO/IEC 9899:1990 International Standard.<br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler</link>
      <pubDate>Thu, 04 Jun 2009 02:01:38 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler</guid>
      <category>Intel C++ Compiler and Performance Library for QNX* Neutrino* RTOS Knowledge Base</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>Can I export a makefile from Visual Studio?</title>
      <description><![CDATA[ This capability was removed from Visual Studio starting with Visual Studio .NET 2003*.<br /><br />Discussion on the msdn.com and microsoft.com web sites indicate that this feature<br />will not be implemented in future versions of Visual Studio.<br /><br />You can create a .bat file or makefile based on the buildlog.html. A buildlog.html file is created after building a project. You can find the file under the $(output) directory. <br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio</link>
      <pubDate>Thu, 21 May 2009 17:39:02 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>