<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Fri, 10 Feb 2012 16:43:13 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/whatif/type/download/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles Feed</title>
    <link>http://software.intel.com/en-us/articles/whatif/type/download/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Intel® Cilk™ Plus Software Development Kit</title>
      <description><![CDATA[ <table border="0" cellpadding="1" cellspacing="1" width="100%">
<tbody>
<tr>
<td align="center"><a href="http://software.intel.com/en-us/articles/download-intel-cilk-plus-software-development-kit/ " target="_top"><img src="http://software.intel.com/file/15820" /></a></td>
<td ><span class="sectionBody"><a href="http://software.intel.com/en-us/articles/welcome-to-whatifintelcom">What If Home</a> | <a href="http://software.intel.com#Product Overview">Product Overview</a> | <a href="http://software.intel.com#Support">Support &amp; Feedback</a> | <a href="http://software.intel.com#Technical Requirements">Technical Requirements</a> | <a href="http://software.intel.com#FAQ">FAQ</a></span></td>
</tr>
</tbody>
</table>
<p><br />The Intel® Cilk™ Plus SDK (Software Development Kit) supplies additional tools for Intel® Cilk™ Plus developers working on the Microsoft Windows* and Linux* operating systems. These tools are especially helpful for users converting from the previous Intel® Cilk++ WhatIf kit to the Intel Cilk Plus implementation provided with the Intel® Parallel Composer 2011 and Intel® C++ Composer XE 2011 products.</p>
<div class="sectionHeading"><a name="Product Overview"></a>Product Overview</div>
<br />
<p>The Intel Cilk Plus SDK provides the following tools:</p>
<ul>
<li>Intel® Cilk screen race detector (Cilk screen) – Monitors the actual operation of an Intel Cilk Plus program as run with your test input. Cilk screen reports all data races introduced by the Intel Cilk Plus scheduler encountered during execution. By monitoring program execution, Cilk screen can detect races in your production binary, and can even detect races produced by third-party libraries for which you may not have source code. </li>
<li>Intel® Cilk view scalability analyzer (Cilk view) – Helps you understand the parallel performance of your Intel Cilk Plus program.  Cilk view reports parallel statistics about an Intel Cilk Plus program and predicts how the performance will scale on multiple processor systems.  In addition, Cilk view can automatically benchmark an Intel Cilk Plus program running on one or more processors.</li>
<li>Integration of Cilk screen and Cilk view into Microsoft Visual Studio* 2005, 2008 and 2010 on Microsoft Windows* operating systems.  Integration into the user’s development environment allows users to view error locations at the click of a mouse.</li>
</ul>
<p>For more information, see the Intel® Cilk™ Plus SDK User’s Guide.</p>
<div class="sectionHeading"><a name="Features"></a>Support &amp; Feedback</div>
<p>The primary support model for the Intel Cilk Plus SDK is through the <a href="http://software.intel.com/en-us/forums/intel-cilk-plus/">Intel® Cilk™ Plus support forum</a> . Use this Support Forum to ask questions about the product, share your experiences with other developers, and ask for assistance if you encounter issues with these tools.</p>
<p>You are encouraged to use this forum for submitting suggestions on new features you would like to see supported and to comment on features currently in the product.  Your feedback is valuable to Intel.</p>
<div class="sectionHeading"><a name="Technical Requirements"></a>Technical Requirements</div>
<p>This release of the Intel Cilk Plus SDK supports the following operating systems:</p>
<ul>
<li>Microsoft Windows XP* or later for the IA-32 or Intel® 64 architectures</li>
<li>Linux* for the IA-32 or Intel 64 architectures</li>
</ul>
<p>In addition, the user must have installed the Intel® C++ Compiler included with one of the following product suites:</p>
<ul>
<li>Intel® Parallel Composer 2011 Update 1</li>
<li>Intel® C++ Composer XE 2011 Update 1</li>
</ul>
<p>Failure to install the compiler update will result in an error claiming that no Intel Cilk Plus code was found.</p>
<div class="sectionHeading"><a name="FAQ"></a>FAQ</div>
<p><b>Q – What is the status of the Intel Cilk Plus SDK on the WhatIf site?</b><br /> A<b> –</b> The Intel Cilk Plus SDK is provided free of charge as a technology preview.  We are interested in your feedback.  Since it is only a technology preview, the support level for this version is limited.</p>
<p><b>Q – How do I get started?</b><br /> A<b> –</b> Before installation, you must set up your environment as described in the Technical Requirements (above).  After downloading the Intel Cilk Plus SDK:</p>
<ul>
<li>On Windows* unzip the zipfile and run setup.exe</li>
<li>On Linux* untar the tarball into your home directory or your /usr/local directory</li>
</ul>
<p>The Intel Cilk Plus SDK User’s Guide is installed as part of the installation.</p>
<p><b>Q – How do I report problems or send feedback?</b><br /> A<b> – </b>You are welcome to join the Intel® Cilk™ Plus Forum to post your questions and issues.  The support team monitors the discussion to address questions.</p>
<p><b>Q – Where can I learn more about Intel Cilk Plus?</b><br /> A – Visit the <a href="http://software.intel.com/en-us/articles/intel-cilk-plus/">Intel® Cilk™ Plus product page</a> for technical documents, presentations and tech-talks on Intel Cilk Plus.</p>
<div class="sectionHeading"><a name="PreviousVersion"></a>Previous Version</div>
<p>The Intel Cilk++ WhatIf kit is still available at <a href="http://software.intel.com/en-us/articles/download-intel-cilk-sdk/">http://software.intel.com/en-us/articles/download-intel-cilk-sdk/</a><a>.</a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cilk-plus-software-development-kit/</link>
      <pubDate>Fri, 24 Dec 2010 21:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cilk-plus-software-development-kit/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cilk-plus-software-development-kit/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Intel Software Autotuning Tool</title>
      <description><![CDATA[ <table border="0" cellpadding="1" cellspacing="1" width="100%">
<tbody>
<tr>
<td align="center"><a href="http://software.intel.com/en-us/articles/download-intel-software-autotuning-tool/" target="_top"><img src="http://software.intel.com/file/15820" /></a></td>
<td ><span class="sectionBody"><a href="http://software.intel.com/en-us/articles/welcome-to-whatifintelcom">What If Home</a> | <a href="http://software.intel.com#Product Overview">Product Overview</a> | <a href="http://software.intel.com#Features">Features</a> | <a href="http://software.intel.com#Technical Requirements">Technical Requirements</a> | <a href="http://software.intel.com#Documentation">Documentation</a><br /><a href="http://software.intel.com#FAQ">FAQ</a> | <a href="http://software.intel.com#Bio">Primary Technology Contacts<br /></a></span></td>
</tr>
</tbody>
</table>
<div class="sectionHeading"><a name="Product Overview"></a><br /><br />Product Overview</div>
<br /><b>Intel Software Autotuning Tool</b>
<p>The Intel Software Autotuning Tool (ISAT) is a new performance tuning tool that supports automatic searching  for the near-optimal values of program parameters that have significant performance impact.  Examples are the cache-blocking factors in matrix computations, the task granularity in TBB,  and the scheduling policy of OpenMP parallel constructs. The output of ISAT is a tuned version of the program based on the searching results.  In addition, it supports visualization of the tuning results (e.g., Figure 1) so that the developer can have a better understanding  of his program performance. ISAT can be used on top of any C/C++ compilers on Linux.</p>
<img src="http://software.intel.com/file/32921/" alt="isat-graph" width="600" /> <br />Figure 1: Visualization of ISAT results.  <br /> <br />
<div class="sectionHeading"><a name="Features"></a>Features</div>
<ul>
<li>Automatic searching of the near-optimal values of program parameters</li>
<li>Easy to use with no compiler dependency</li>
<li>Programmer-controlled searching strategies</li>
<li>Threading-library specific tuning for OpenMP and TBB</li>
<li>Visualization of tuning results</li>
<li>The autotuner is open-sourced</li>
</ul>
<div class="sectionHeading"><a name="Technical Requirements"></a>Technical Requirements</div>
<ul>
<li> 32 or 64-bit Linux; Python version between 2.4 and 2.9; any C/C++ compiler.</li>
</ul>
<div class="sectionHeading"><a name="Downloads"></a>Downloads</div>
<ul>
<li> <a href="http://software.intel.com/file/32922/">Kit for 32/64-bit Linux</a> </li>
</ul>
<div class="sectionHeading"><a name="Documentation"></a>Documentation</div>
<ul>
<li> <a href="http://software.intel.com/file/32918/"> User manual </a> </li>
<li> <a href="http://software.intel.com/file/32919/"> A Synergetic Approach to Throughput Computing on x86- Based Multicore Desktops</a> </li>
<li> <a href="http://software.intel.com/file/32920/"> Presentation: A Synergetic Approach to Throughput Computing on Intel® Architecture</a> </li>
</ul>
<div class="sectionHeading"><a name="Bio"></a>Primary Technology Contacts</div>
<a href="http://www.ckluk.org/ck">Chi-Keung (CK) Luk</a> is a Senior Staff Engineer in a Software Pathfinding Group at Intel,  where he conducts research and advanced development in parallel programming, compiler,  and program-analysis tools. Previously, he worked on the Pin dynamic instrumentation system.  CK obtained his Ph.D. from the University of Toronto and was a visiting scholar at Carnegie Mellon University.  He has 30 publications and two issued patents with a few others pending.  He received an Intel Achievement Award and a nomination for the ACM Doctoral Dissertation Award. ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-software-autotuning-tool/</link>
      <pubDate>Wed, 15 Dec 2010 21:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-software-autotuning-tool/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-software-autotuning-tool/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Download Intel Software Autotuning Tool</title>
      <description><![CDATA[ <b>Technical Documentation</b>
<p><a href="http://software.intel.com/file/32918/">User manual</a></p>
<b>Download Files</b> <br />Click to accepting the end user license agreement and download the Intel Software Autotuning Tool. <br /><br /><a href="http://software.intel.com/file/32922/" onclick="show_file_download(3,false,'http://software.intel.com/file/32922/')" title="download_3" class="filedownload" id="free_download_3">Kit for 32/64-bit Linux</a> 6.76MB
<p> </p>
<p>Please take a moment to <a href="https://login-software.intel.com/isn/registration/isnRegpage.aspx?TARGET=http://softwarecommunity.intel.com/isn/home/default.aspx?xclear=1">register with ISN </a>to participate in forum discussions.</p>
<p>Back to the <a href="http://software.intel.com/en-us/articles/intel-software-autotuning-tool/">Intel Software Autotuning Tool</a>page.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/download-intel-software-autotuning-tool/</link>
      <pubDate>Wed, 15 Dec 2010 21:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/download-intel-software-autotuning-tool/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/download-intel-software-autotuning-tool/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Download Intel® Cilk™ Plus Software Development Kit</title>
      <description><![CDATA[ <p><b>Description</b><br />This SDK is compatible with Cilk-style parallelized binaries compiled with the Intel® Parallel Composer 2011 and Intel® C++ Composer XE products. Support for the Intel Cilk Plus SDK is through the <a href="http://software.intel.com/en-us/forums/intel-cilk-plus/">Intel® Cilk™ Plus support forum</a>.</p>
<p><b>Download Files<br /></b>Select your operating system and accepting the end user license agreement.</p>
<ul>
<li>Compatible with Intel C++ V12.1: <br /> <a file_path="http://software.intel.com/file/39865" href="http://software.intel.comjavascript:void(0);" onclick="show_file_download(9,false,'http://software.intel.com/file/39865')" title="download_9" id="free_download_9" class="filedownload">Download Intel® Cilk™ Plus SDK installer for Windows*</a> (cilktools_2061-v12.1.zip) 13.2MB <br /> <a file_path="http://software.intel.com/file/39864" href="http://software.intel.comjavascript:void(0);" onclick="show_file_download(9,false,'http://software.intel.com/file/39864')" title="download_9" id="free_download_9" class="filedownload">Download Intel® Cilk™ Plus SDK package for Linux*</a> (cilkutil-linux-build~002061-v12.1.tgz) 11.5MB <br /> <a href="http://software.intel.com/file/39866">Download source for libelf and libdwarf used by Intel® Cilk™ Plus SDK for Linux*</a> (extsrc.tgz) 1.2MB </li>
<li>Compatible with Intel C++ V12.0:<br /> <a file_path="http://software.intel.com/file/33254/" href="http://software.intel.comjavascript:void(0);" onclick="show_file_download(9,false,'http://software.intel.com/file/33254/')" title="download_9" id="free_download_9" class="filedownload">Download Intel® Cilk™ Plus SDK installer for Windows*</a> (cilktools_1113.zip) 12.5MB<br /> <a file_path="http://software.intel.com/file/33225/" href="http://software.intel.comjavascript:void(0);" onclick="show_file_download(9,false,'http://software.intel.com/file/33225/')" title="download_9" id="free_download_9" class="filedownload">Download Intel® Cilk™ Plus SDK package for Linux* </a>(cilkutil-linux-build~001113.tgz) 10.8MB </li>
</ul>
<p>Please take a moment to <a href="https://login-software.intel.com/isn/registration/isnRegpage.aspx?TARGET=http://softwarecommunity.intel.com/isn/home/default.aspx?xclear=1">register with ISN </a>to participate in forum discussions.</p>
<p>Back to the <a href="http://software.intel.com/en-us/articles/intel-cilk-plus-software-development-kit/">Intel® Cilk Plus SDK</a> page.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/download-intel-cilk-plus-software-development-kit/</link>
      <pubDate>Fri, 10 Dec 2010 21:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/download-intel-cilk-plus-software-development-kit/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/download-intel-cilk-plus-software-development-kit/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Intel® Concurrent Collections for C++ 0.6.x Getting Started</title>
      <description><![CDATA[ <meta content="text/html; charset=windows-1252" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="Getting_Started_files/filelist.xml" />
<link rel="Edit-Time-Data" href="Getting_Started_files/editdata.mso" />

<meta content="en-us" />
<meta name="description" content="Getting Started html document, which describes Intel® Concurrent Collections for C/C++ on Windows*" />
<div class="WordSection1">
<h1  align="center"><em><span >Intel® Concurrent Collections for C++ 0.6.x</span></em><span ><br /><em><span >Getting Started</span></em></span><span ><o:p></o:p></span></h1>
<div  class="MsoNormal" align="center"><span > 
<hr  align="center" size="1" width="100%" />
</span></div>
<h2><span >Contents</span><span ><o:p></o:p></span></h2>
<ul type="disc">
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#This_is_Pre-Release_Code">This is Pre-Release Code</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#The_Prerequisite_Software">The prerequisite Software for Install and Set-up</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Installing_TBB">Installing the Intel® Threading Building Blocks Library</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com#Downloading_and_Installing"><span >Downloading and Installing the Intel® Concurrent Collections for C++</span> </a><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Running_the_Samples">Running the Samples</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><span ><a href="http://software.intel.com#Running_Different_Versions_of_VS">Running Different Versions of Visual Studio on the Same Machine</a></span></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Locate_the_Documentation">Locate the Documentation</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Changing,_Updating_and_Removing">Changing, Updating and Removing the Product</a></span><span > <o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Disclaimer_and_Legal_Information">Disclaimer and Legal Information</a></span><span ><o:p></o:p></span></li>
</ul>
<h2><span >This is Pre-Release Code</span><a name="This_is_Pre-Release_Code"></a><span ><o:p></o:p></span></h2>
<p class="MsoNormal"><span >Intel® Concurrent Collections for C++ is pre-release code, which may not be fully functional and which Intel may substantially modify in producing any final version.  Intel can provide no assurance that it will ever produce or make generally available a final version. </span></p>
<h2><a name="The_Prerequisite_Software"><span >The Prerequisite Software for Install and Set-up</span></a><span ></span><span ><o:p></o:p></span></h2>
<ol type="1">
<li  class="MsoNormal"><span >Intel® Concurrent Collections for C++ is supported on the Microsoft Windows* OS and Linux* OS running on IA-32 or Intel® 64 architecture systems. </span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >For Microsoft Windows*, you must have Microsoft Visual Studio* 2005 SP1 or Microsoft Visual Studio* 2008 or Microsoft Visual Studio* 2010 with the Visual C++* component installed on your system.</span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >For Linux*, you must have GNU g++ version 3.4.2 or greater installed on your system.</span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >On Microsoft Windows*, you must have the Intel® Threading Building Blocks (TBB) 3.0 runtime library installed on your system.</span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >On Linux*, you must have the Intel® Threading Building Blocks (TBB) 2.2 (or greater) runtime library installed on your system.</span><span ><o:p></o:p></span></li>
</ol>
<p><span >Note: the Intel® Concurrent Collections for C++ product is designed to run with either the Microsoft* or Intel® C++ compilers on Microsoft Windows*, and either the GNU g++ or Intel® C++ compilers on Linux*. </span></p>
<p><a name="Installing_TBB"><span >Installing the Intel® Threading Building Blocks Library</span></a></p>
<p><span >The Intel® Concurrent Collections for C++ runtime library uses the Intel® Threading Building Blocks runtime library (For Linux*, version 2.2 or greater. <span class="GramE">For Windows, version 3.0 or greater.)</span> If Intel® Threading Building Blocks is not already installed on your system, then:</span></p>
<p><span >For Windows*</span></p>
<ol type="1">
<li  class="MsoNormal"><span >Create a directory to hold the Intel® TBB files. We recommend C:\Program Files\Intel\TBB\3.0.<br /> </span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >Download Intel® Threading Building Blocks 3.0. Although all versions of Intel® TBB 3.0 work with Intel® Concurrent Collections for C++, we recommend that you download the latest update from the Commercial Aligned Release section. To download the Commercial Aligned Release, go to <a href="http://threadingbuildingblocks.org/">http://threadingbuildingblocks.org</a>; Click on "Downloads"; Click on "Commercial Aligned Release"; Click on "tbb30_018oss"; Click on "Download" that is next to tbb30_018oss_win.zip, then save the file to a location on your local system.  <br /> </span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >Using unzip, extract all files/folders in tbb30_018oss_win.zip using the "Use folder names" option to the directory you created in step 1.<br /> </span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >Set up the Intel® TBB environment variable – TBB30_INSTALL_DIR to point at the full path name of the Intel® TBB directory.  Use the Control Panel -&gt; System -&gt; Advanced -&gt; Environment Variables. Note: if you followed all of the recommendations in the above steps, the value of TBB30_INSTALL_DIR would be C:\Program Files\Intel\TBB\3.0\tbb30_018oss.<br /> </span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >If you installed the latest Commercial Aligned Release, tbb30_018oss_win.zip, then you must edit each "tbbvars.bat" file, which are located in the bin directories under TBB. Please replace the statement:<br /> "SET TBB30_INSTALL_DIR=SUBSTITUTE_INSTALL_DIR_HERE"<br />with:<br /> "IF NOT DEFINED TBB30_INSTALL_DIR SET TBB30_INSTALL_DIR=SUBSTITUTE_INSTALL_DIR_HERE"<br /><br />If you don't use the <span class="SpellE">setenv</span>_*_vs20**.bat scripts to setup your environment, you should add the location of the appropriate Intel® TBB <span class="SpellE">dll’s</span> to your path. The location should be:<br /><br /> %TBB30_INSTALL_DIR%<span class="GramE">\[</span>ia32 or intel64]\[vc8 or vc9 or vc10]\bin<br /><br />Note: You specify ia32 if you are using an IA-32 architecture system and intel64 if you are using an Intel® 64 architecture system. In addition, you should specify vc8 if you are using Microsoft Visual Studio* 2005 SP1 and vc9 if you are using Microsoft Visual Studio* 2008 and vc10 if you are using Microsoft Visual Studio* 2010. For information on script files provided to aid in environment variable set-up, please refer to <a href="http://software.intel.com/en-us/admin/articles/edit/67645/#Running_Different_Versions_of_VS">Running Different Versions of Visual Studio* on the Same Machine</a>. </span></li>
</ol>
<p class="MsoNormal"><span >For Linux*</span></p>
<p class="MsoNormal"><span ><span >1.<span > </span></span></span><span >Create a directory to hold the Intel® TBB files. We recommend /opt/intel/tbb/3.0. On Linux*, TBB versions 2.2 or later are compatible.<br /> </span><span ><o:p></o:p></span></p>
<p class="MsoNormal"><span ><span >2.<span > </span></span></span><span >Download Intel® Threading Building Blocks 3.0 from <a href="http://threadingbuildingblocks.org/">http://threadingbuildingblocks.org</a>. We recommend that you download the latest update from the Commercial Aligned Release section, tbb30_018oss_lin.tgz. Click on Download then save the file to a location on your local system.</span><span ><o:p></o:p></span></p>
<p class="MsoNormal"><span ><span >3.<span > </span></span></span><span >Use the "tar -<span class="SpellE">xzf</span>" command to extract all files/folders in tbb30_018oss_lin.tgz and move the contents of the resulting tbb30_018oss/ directory into the directory you created in step 1.<br /> </span><span ><o:p></o:p></span></p>
<p class="MsoNormal"><span ><span >4.<span > </span></span></span><span >Modify the appropriate Intel® TBB shell script used to set up the environment variables so that it contains the full path name of the Intel® TBB installation directory. Note: if you followed all of the recommendations in the above steps, then if you are on an IA-32 architecture system, modify the shell script located in /opt/intel/tbb/3.0/ia32/cc3.4.4_libc2.3.4_kernel2.6.9/bin/, or if you are on an Intel® 64 architecture system, modify the shell script located in /opt/intel/tbb/3.0/intel64/cc3.4.3_libc2.3.4_kernel2.6.9/bin/. There are "tbbvars.csh" and "tbbvars.sh" files in each of the above directories. Edit the appropriate file (depending on the shell you are using), and replace the phrase "SUBSTITUTE_INSTALL_DIR" with the path to your Intel® TBB installation, which would be /opt/intel/tbb/3.0 if you followed the recommendations.<br /> </span><span ><o:p></o:p></span></p>
<p class="MsoNormal"><span ><span >5.<span > </span></span></span><span >Invoke the modified shell script to set up your environment variables, e.g. "source tbbvars.csh". <br /> </span><span ><o:p></o:p></span></p>
<h2><span >Downloading and Installing the Intel® Concurrent Collections for C++</span><a name="Downloading_and_Installing"></a><span ><o:p></o:p></span></h2>
<p><span >For Windows*</span></p>
<p><span >This should be done using the executable from the <span class="SpellE">WhatIf</span> web site. Simply download the install exe, and run it.</span></p>
<p><span >The install process creates an environment variable named CNC_INSTALL_DIR, which points to the full path name of the Intel® Concurrent Collections for C++ product. If you want to use another version of the product, you must manually set CNC_INSTALL_DIR to point to that location.</span></p>
<p><span >For Linux*</span></p>
<p><span >This should be done using the installation script contained in the Linux* kit available from the <span class="SpellE">WhatIf</span> web site. Simply download the kit, extract it and run the install.sh script. For example:</span></p>
<ol type="1">
<li  class="MsoNormal"><span >tar -<span class="SpellE">xzf</span> "l_cnc_b_0.6.00X.tgz"</span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >cd l_cnc_b_0.6.00X</span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span >./install.sh</span><span ><o:p></o:p></span></li>
</ol>
<p><span > </span><a name="Running_the_Samples"><span >Running the Samples</span></a></p>
<p><span >For Windows*<o:p></o:p></span></p>
<p><span >The best way to invoke Microsoft Visual Studio with settings for Intel® Concurrent Collections for C++ is from cmd.exe window. For example, to launch Visual Studio 2008 on intel64 machine do the following:<o:p></o:p></span></p>
<p><span >&gt;cd %CNC_INSTALL_DIR%<o:p></o:p></span></p>
<p><span >&gt;setenv_intel64_vs2008.bat –vs<o:p></o:p></span></p>
<blockquote >
<p><span >Within Visual Studio, navigate to the sample programs at %CNC_INSTALL_DIR%\Samples. To load these samples into Microsoft Visual Studio*and run them, open the <i>example</i>\<i>examplename</i>.sln file, for example:</span></p>
<blockquote >
<p><span >%CNC_INSTALL_DIR%\Samples\VS2005\<span class="SpellE">div_conq</span>\div_conq.sln.</span></p>
</blockquote>
<p><span >See the Intel® Concurrent Collections for C++ User's Guide for details on creating and running your own Intel® Concurrent Collections for C++ project.<o:p></o:p></span></p>
<h3><span >Building the samples with the Intel C++ Compiler:</span><span ><o:p></o:p></span></h3>
<p class="MsoListParagraphCxSpFirst"><span ><span >1.<span > </span></span></span><span >In the <b>Solution Explorer</b> window, select the project you want to modify.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast"><span ><span >2.<span > </span></span></span><span >Right-click on the project name and select <b>Use Intel C++</b>. After converting, the Intel C++ Compiler becomes the default compiler for your project.</span></p>
</blockquote>
<p><span >For Linux*</span></p>
<blockquote >
<p><span >Sample programs using the Intel® Concurrent Collections for C++ product are available in $CNC_INSTALL_DIR/samples/. The <span class="SpellE">Makefiles</span> for these samples rely on a CNC_INSTALL_DIR environment variable being defined; this can be accomplished by executing the following steps after installation:</span></p>
<p class="MsoListParagraphCxSpFirst"><span ><span >1.<span > </span></span></span><span >Open the $CNC_INSTALL_DIR/bin/$ARCH/cncvars.csh script (or cncvars.sh, depending on your shell) in a text editor, where $ARCH is "intel64" if you are on an Intel® 64 architecture system, and "ia32" if you are on an IA-32 architecture system.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast"><span ><span >2.<span > </span></span></span><span >Execute the modified script at the command line--e.g. type "source cncvars.csh".</span><span ><o:p></o:p></span></p>
<p><span >After the environment variables have been properly set up, you can try building and running the examples located in the $CNC_INSTALL_DIR/samples directory.<span > </span>When working with the samples, you may wish to work in a <i >copy</i> of the samples directory. Ensure that the working samples directory is <span class="GramE">write</span> permitted before building the samples. <o:p></o:p></span></p>
</blockquote>
<p><span >Note: Setting up TBB variables is a prerequisite step.<o:p></o:p></span></p>
<h3><span >Building the samples with the Intel C++ Compiler:<o:p></o:p></span></h3>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Set up the Intel C++ environment variables, and launch the sample <span class="SpellE">Makefile</span> specifying <span class="SpellE">icpc</span> as the build compiler. For example:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span class="GramE"><span >source</span></span><span > /opt/intel/Compiler/11.1/046/bin/iccvars.sh intel64<o:p></o:p></span></p>
<p class="MsoNormal"><span class="GramE"><span >cd</span></span><span > $CNC_INSTALL_DIR/samples/fib<o:p></o:p></span></p>
<p class="MsoNormal"><span class="GramE"><span >make</span></span><span > CC=<span class="SpellE">icc</span> CXX=<span class="SpellE">icpc</span></span></p>
<h2><a name="Running_Different_Versions_of_VS"><span >Running Different Versions of Visual Studio* on the Same Machine</span></a><span ></span><span ><o:p></o:p></span></h2>
<p><span >(For Windows* only)</span><span ><o:p></o:p></span></p>
<p><span >Usually, the environment variables used by Microsoft Visual Studio* are derived from the Use the Control Panel -&gt; System -&gt; Advanced -&gt; Environment Variables settings. This method is not convenient when using multi-versions of Microsoft Visual Studio*, or when building programs for IA-32 and Intel® 64 architecture systems on the same machine. This is because the paths to the Intel® Concurrent Collections for C/C++ and Intel® TBB runtime libraries differ depending upon the version of Microsoft Visual Studio* and the target processor architecture. As an alternative, we provide four script files to aid in setting up the proper environment.  The script files are located in the top-level directory of the Intel® Concurrent Collections for C/C++ product, and are named setenv_ia32_vs2005.bat, setenv_ia32_vs2008.bat, setenv_ia32_vs2010.bat, setenv_intel64_vs2005.bat, setenv_intel64_vs2010.bat, and setenv_intel64_vs2008.bat. Executing <span class="SpellE">setenv</span>_*_vs20**.bat from a Windows command prompt sets up the appropriate environment for that window. You can execute '<span class="SpellE">setenv</span>_*_vs20**.bat -<span class="SpellE">vs'</span> from either a Windows command prompt or the Start -&gt; Run menu, and the specified version of Microsoft Visual Studio* will be invoked with the appropriate environment. For more information, execute any of the <span class="SpellE">setenv</span> bat files with the -h option.<o:p></o:p></span></p>
<p><span >Note that the above mentioned script files are supplied as is. You may have to modify them for you system environment.<o:p></o:p></span></p>
<h2><a name="Locate_the_Documentation"><span >Locate the Documentation</span></a><span ></span><span ><o:p></o:p></span></h2>
<p><span >The documentation is located in the &lt;install-dir&gt;\doc\ directory. You can find documentation on the following:<o:p></o:p></span></p>
<ul  type="disc">
<li  class="MsoNormal"><span ><a href="http://software.intel.com/file/30234">Tutorial - The Eight Basic Design Patterns of Intel® Concurrent Collections for C++</a> <o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/file/30235">User’s Guide</a> <o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/sites/whatif/runtime_api/index.html">Runtime API</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/file/30233">Textual Notation</a></span><span ><o:p></o:p></span></li>
<li  class="MsoNormal"><span ><a href="http://software.intel.com/en-us/articles/intel-concurrent-collections-for-c-060-release-notes">Release Notes</a><o:p></o:p></span></li>
</ul>
<p><a name="Changing,_Updating_and_Removing"><span >Changing, Updating and Removing the Product</span></a><span ><o:p></o:p></span></p>
<p><span >(For Windows* only)</span><span ><o:p></o:p></span></p>
<p><span >If you want to add or remove components from an installation, open the Add or Remove Programs applet in the Windows Control Panel, select "Intel® Concurrent Collections for C++ Prototype Edition, version 0.6.xxx" and click Change. To remove the product, select Remove instead of Change. <o:p></o:p></span></p>
<p><span >When installing an updated version of the product, you do not need to remove the older version first.<o:p></o:p></span></p>
<div  class="MsoNormal" align="center"><span > 
<hr  align="center" size="1" width="100%" />
</span></div>
<h2><a name="Disclaimer_and_Legal_Information"><span >Disclaimer and Legal Information</span></a><span ></span><span ><o:p></o:p></span></h2>
<p><span >INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) 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. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.<br />Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.</span><span ><o:p></o:p></span></p>
<p><span >The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.</span><span ><o:p></o:p></span></p>
<p><span >Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.</span><span ><o:p></o:p></span></p>
<p><span >Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's Web Site. </span><span ><o:p></o:p></span></p>
<p><span >Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details. </span><span ><o:p></o:p></span></p>
<p><span class="SpellE"><span >BunnyPeople</span></span><span >, Celeron, Celeron Inside, <span class="SpellE">Centrino</span>, <span class="SpellE">Centrino</span> Atom, <span class="SpellE">Centrino</span> Atom Inside, <span class="SpellE">Centrino</span> Inside, <span class="SpellE">Centrino</span> logo, Core Inside, <span class="SpellE">FlashFile</span>, i960, <span class="SpellE">InstantIP</span>, Intel, Intel logo, Intel386, Intel486, IntelDX2, IntelDX4, IntelSX2, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap <span class="GramE">ahead.,</span> Intel. Leap ahead. logo, Intel <span class="SpellE">NetBurst</span>, Intel <span class="SpellE">NetMerge</span>, Intel <span class="SpellE">NetStructure</span>, Intel <span class="SpellE">SingleDriver</span>, Intel <span class="SpellE">SpeedStep</span>, Intel <span class="SpellE">StrataFlash</span>, Intel <span class="SpellE">Viiv</span>, Intel <span class="SpellE">vPro</span>, Intel <span class="SpellE">XScale</span>, Itanium, Itanium Inside, MCS, MMX, <span class="SpellE">Oplus</span>, <span class="SpellE">OverDrive</span>, <span class="SpellE">PDCharm</span>, Pentium, Pentium Inside, <span class="SpellE">skoool</span>, Sound Mark, The Journey Inside, <span class="SpellE">Viiv</span> Inside, <span class="SpellE">vPro</span> Inside, <span class="SpellE">VTune</span>, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.</span><span ><o:p></o:p></span></p>
<p><span >* Other names and brands may be claimed as the property of others. </span><span ><o:p></o:p></span></p>
<p><span >Copyright (C) 2009-2010, Intel Corporation. All rights reserved.<br /> </span><span ><o:p></o:p></span></p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-concurrent-collections-for-c-06x-getting-started-0/</link>
      <pubDate>Mon, 06 Sep 2010 18:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-concurrent-collections-for-c-06x-getting-started-0/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-concurrent-collections-for-c-06x-getting-started-0/</guid>
      <category>Parallel Programming</category>
      <category>What If Experimental Software</category>
      <category>Tools</category>
      <category>Intel Software Network communities</category>
      <category>Software News</category>
      <category>Code &amp; Downloads</category>
    </item>
    <item>
      <title>Pre-Release License Agreement for Intel® C++ STM Compiler, Prototype Edition</title>
      <description><![CDATA[ <p>Note - Please make sure that you have an active license of the Intel(R) C++ Compiler for Windows* or the Intel(R) C++ Compiler for Linux* on your system. If you don't, you can easily acquire a <a href="http://www3.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm">commercial product or try an evaluation copy</a>.</p>
<p>Attention – the include/itm.h file shipped with the C++ STM compiler version 11.0.606 has been corrupted and needs to be corrected manually to be usable. The solution is to remove all lines after and including line 389 in the include/itm.h file. Please accept our apologies for the inconvenience.</p>
<p><b>Intel® C++ STM Compiler Prototype Edition 4.0</b></p>
<ul>
<li><a href="http://software.intel.com/file/29788/" onclick="show_file_download(3,false,'http://software.intel.com/file/29788/')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD WINDOWS* IA-32</a> (w_cstmc_p_11.0.509_ia32.exe, 337MB)</li>
<li><a href="http://software.intel.com/file/29787/" onclick="show_file_download(3,false,'http://software.intel.com/file/29787/')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD WINDOWS* Intel® 64</a> (w_cstmc_p_11.0.509_intel64.exe, 412MB)</li>
<li><a href="http://software.intel.com/file/29784/" onclick="show_file_download(3,false,'http://software.intel.com/file/29784/')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* IA-32 and Intel® 64</a> (l_cproc_p_11.0.610.tgz, 1.1GB)</li>
<li><a href="http://software.intel.com/file/29786/" onclick="show_file_download(3,false,'http://software.intel.com/file/29786/')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* IA-32</a> (l_cproc_p_11.0.610_ia32.tgz, 592MB)</li>
<li><a href="http://software.intel.com/file/29785/" onclick="show_file_download(3,false,'http://software.intel.com/file/29785/')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* Intel® 64</a> (l_cproc_p_11.0.610_intel64.tgz, 611MB)</li>
</ul>
<p><b>Intel® C++ STM Compiler Prototype Edition 3.0</b></p>
<p><a href="http://software.intel.com/en-us/articles/intel-c-stm-compiler-prototype-edition-20-release-notes ">Release Notes</a> | <a href="http://softwarecommunity.intel.com/isn/Downloads/whatif/stm/Intel-C-STM-Language-Extensions-Users-Guide-V2_0.pdf"></a><a href="http://software.intel.comjavascript:void(0)" onclick="ndownload('http://software.intel.com/file/8263')">Intel® C++ STM Compiler Prototype Edition 3.0 Language Extensions and User’s Guide</a></p>
<ul>
<li><a href="http://software.intel.com/file/8260" onclick="show_file_download(3,false,'http://software.intel.com/file/8260')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD WINDOWS* IA-32</a> (w_cstmc_p_11.0.507_ia32.exe, 326.9MB)</li>
<li><a href="http://software.intel.com/file/8262" onclick="show_file_download(3,false,'http://software.intel.com/file/8262')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD WINDOWS* Intel® 64</a> (w_cstmc_p_11.0.507_intel64.exe, 401.6MB)</li>
<li><a href="http://software.intel.com/file/8259" onclick="show_file_download(3,false,'http://software.intel.com/file/8259')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* IA-32 and Intel® 64</a> (l_cproc_p_11.0.606.tgz, 1.09GB)</li>
<li><a href="http://software.intel.com/file/8258" onclick="show_file_download(3,false,'http://software.intel.com/file/8258')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* IA-32</a> (l_cproc_p_11.0.606_ia32.tgz, 507.5MB)</li>
<li><a href="http://software.intel.com/file/8261" onclick="show_file_download(3,false,'http://software.intel.com/file/8261')" title="download_3" class="filedownload" id="free_download_3">DOWNLOAD LINUX* Intel® 64</a> (l_cproc_p_11.0.606_intel64.tgz, 594.2MB)</li>
</ul>
<p> </p>
<p>Please take a moment to <a href="https://login-software.intel.com/isn/registration/isnRegpage.aspx?TARGET=http://softwarecommunity.intel.com/isn/home/default.aspx?xclear=1">register with ISN</a> to participate in forum discussions.</p>
<p>Back to the <a href="http://software.intel.com/en-us/articles/intel-c-stm-compiler-prototype-edition-20">Intel® C++ STM Compiler Prototype Edition</a> page.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/pre-release-license-agreement-for-intel-c-stm-compiler-prototype-edition/</link>
      <pubDate>Sun, 22 Aug 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/pre-release-license-agreement-for-intel-c-stm-compiler-prototype-edition/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/pre-release-license-agreement-for-intel-c-stm-compiler-prototype-edition/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Intel® AVX C/C++ Intrinsics Emulation</title>
      <description><![CDATA[ <p>Intel® AVX instruction set extension <a target="_blank" href="http://software.intel.com/en-us/avx/">[1]</a> will appear in the next generation Intel microarchitecture codename ‘Sandy Bridge'. We chose to announce AVX early to get as much support from software vendors as possible by the hardware launch time. Now, most software development platforms are supporting Intel AVX, examples are compilers and assemblers from Intel, Microsoft and GCC as well as UNIX binutils.</p>
<p>For early adopters we introduced support of AVX in Intel® Software Development Emulator <a target="_blank" href="http://software.intel.com/en-us/articles/intel-software-development-emulator/">[2]</a>, it allows you to run and check functional correctness of the code with the actual AVX instructions before hardware is available.</p>
<p>Today we are adding another useful piece to help those who may not be able to use new tools supporting AVX in their current development environment but plan to migrate in the future or are using a software platform which is not supported by Intel SDE. These software developers can still start programming with Intel AVX using intrinsics.</p>
<p>Here we are providing the C and C++ header file which emulates Intel AVX intrinsics. The AVX emulation header file uses intrinsics for the prior Intel instruction set extensions up to Intel SSE4.2. SSE4.2 support in your development environment as well as hardware is required in order to use the AVX emulation header file. <br /><br />To use simply have this file included:</p>
<p>#include "avxintrin_emu.h"</p>
<p>Instead of usual:</p>
<p>#include &lt;immintrin.h&gt;</p>
<p><br />One can also create alternative immintrin.h file (which in turn includes avxintrin_emu.h) to avoid an intrusive change to the source base and then simply switch between real AVX code generation and emulation via alternating the path to include directories.</p>
<p>Emulation header is primarily targeting UNIX type of environments, and was tested on such with GCC and Intel C/C++ compilers. We have a strong support with other tools (compilers, assemblers and SDE) on Microsoft Windows platform, but this header file can still be used on Windows, if desired, with Intel Compiler.</p>
<p>Note that the AVX emulation header file is designed to allow functional correctness of an AVX implementation and not recommended for long-term usage or release in a final product. Once your development environment and hardware supports AVX, we recommend that you switch to the real AVX intrinsic header file.<br /><br />Although we did our best to debug it, this file must <em>not</em> be considered a reference functional implementation of AVX instructions or even bug-free. Please see the current version's limitations and caveats in the beginning of the file. Please let us know about the issues you faced using it.</p>
<p><b><br />Example</b></p>
<pre name="code" class="cpp:nogutter:nocontrols">#include "avxintrin_emu.h"  // #include &lt;immintrin.h&gt;

void saxpy( float a, const float* x, const float* y, float* __restrict z, size_t len )
{
    size_t i = 0;
    __m256 a_ = _mm256_set1_ps( a );

    for ( size_t len16_ = len &amp; -16; i + 16 &lt;= len16_; i += 16 )
    {
        __m256 x1_ = _mm256_loadu_ps( x + i );
        __m256 x2_ = _mm256_loadu_ps( x + i + 8 );

        __m256 y1_ = _mm256_loadu_ps( y + i );
        __m256 y2_ = _mm256_loadu_ps( y + i + 8 );

        x1_ = _mm256_mul_ps( x1_, a_ );
        x2_ = _mm256_mul_ps( x2_, a_ );

        x1_ = _mm256_add_ps( x1_, y1_ );
        x2_ = _mm256_add_ps( x2_, y2_ );

        _mm256_storeu_ps( z + i     , x1_ );
        _mm256_storeu_ps( z + i + 8 , x2_ );
    }

    for ( ; i &lt; len; ++i )
        z[i] = x[i] * a + y[i];
}</pre>
<p><br /><strong><br />References </strong></p>
<p>[1] Intel AVX - <a target="_blank" href="http://software.intel.com/en-us/avx/">http://software.intel.com/en-us/avx/</a></p>
<p>[2] Intel Software Development Emulator - <a target="_blank" href="http://software.intel.com/en-us/articles/intel-software-development-emulator/">http://software.intel.com/en-us/articles/intel-software-development-emulator/</a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/</link>
      <pubDate>Wed, 23 Jun 2010 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/</guid>
      <category>Parallel Programming</category>
      <category>Open Source</category>
      <category>What If Experimental Software</category>
      <category>Tools</category>
      <category>Intel® AVX</category>
      <category>Software News</category>
      <category>Code &amp; Downloads</category>
    </item>
    <item>
      <title>Download The Intel® Energy Checker SDK</title>
      <description><![CDATA[ <span >
<div >
<div ><span ><br /></span></div>
<div ><span ><b>Technical Documentation</b></span></div>
<div ><span ><span >
<p ><a  onclick="ndownload('http://software.intel.com/file/25178')" href="http://software.intel.comjavascript:void(0)">Intel® Energy Checker SDK User Guide</a> | <a  onclick="ndownload('http://software.intel.com/file/25179')" href="http://software.intel.comjavascript:void(0)">Intel® Energy Checker SDK Companion Applications User Guide</a> |</p>
<p ><a  onclick="ndownload('http://software.intel.com/file/25180')" href="http://software.intel.comjavascript:void(0)">Intel® Energy Checker SDK Device Kit User Guide</a> | <a  onclick="ndownload('http://software.intel.com/file/25181')" href="http://software.intel.comjavascript:void(0)">How Green Is Your Software - White Paper</a> |</p>
<p ><a  href="http://software.intel.com/en-us/articles/what-if-pre-release-license-agreement/">End User License Agreement (EULA)</a></p>
</span></span></div>
<div ><span ><br /></span></div>
<div ><span ><b>Download Files</b></span></div>
<div ><span >Select your operating system and accepting the end user license agreement.</span></div>
<span >
<div ><a onclick="show_file_download(3,false,'http://software.intel.com/file/25182')" id="free_download_3" title="download_3" class="filedownload" href="http://software.intel.com/file/25182">Intel® Energy Checker SDK</a><a href="http://software.intel.com/file/23354" class="filedownload" title="download_9" id="free_download_9" onclick="show_file_download(9,false,'http://software.intel.com/file/23354')"> </a>(Intel(R) Energy Checker SDK -- 2010.01.19) 13.7MB</div>
</span>
<div ><span ><br /></span></div>
<p >Please take a moment to <a href="https://login-software.intel.com/isn/registration/isnRegpage.aspx?TARGET=http://softwarecommunity.intel.com/isn/home/default.aspx?xclear=1" >register with ISN </a>to participate in forum discussions.</p>
<p >Back to the <a href="http://software.intel.com/en-us/articles/intel-energy-checker-sdk/">Intel® Energy Checker SDK </a>page.</p>
</div>
</span> ]]></description>
      <link>http://software.intel.com/en-us/articles/download-the-intel-energy-checker-sdk/</link>
      <pubDate>Fri, 12 Feb 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/download-the-intel-energy-checker-sdk/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/download-the-intel-energy-checker-sdk/</guid>
      <category>What If Experimental Software</category>
    </item>
    <item>
      <title>Intel Power Web API Documentation and Examples</title>
      <description><![CDATA[ <p>
The Intel Power Web API provides a web app with JavaScript access to 
information about the devices power and battery state.
</p>

<div >
<a name="Contents">Contents</a>
</div>
<div >
  <ul>
    <li>
      <a href="http://software.intel.com#Overview">Overview</a>
    </li>
    <li>
      <a href="http://software.intel.com#Browser and Device Compatibility">Browser and Device Compatibility</a>
    </li>
    <li>
      <a href="http://software.intel.com#A code sample to get you started">A code sample to get you started</a>
    </li>
    <li>
      <a href="http://software.intel.com#JavaScript API Details">JavaScript API Details</a>
    </li>
    <li>
      <a href="http://software.intel.com#See it working">See it working in this page!</a>
    </li>
  </ul>
</div>

<br/>
<div >
  <a name="Overview">Overview</a>
</div>
<div >
    <p>
    When web apps have the ability to learn about the device's state they
    are able to make use of that information to create a better experience 
    for the user.
    </p>
    <p>
    For instance, in combination with other information about the device, a web 
    app might use Battery level information to determine if a will be able to 
    complete an activity - such as watching a lengthy movie or playing a game.
    </p>
</div>

<br/>
<div >
<a name="Browser and Device Compatibility">Browser and Device Compatibility</a>
</div>
<div >
  <p>
  The table below lists some compatability notes for browser and operating system combinations.
  This API is currently beta quality.
  </p>
  <p>
  If you are interested in seeing these APIs available on other device types and operating systems 
  please let us know by <a href="http://software.intel.com/en-us/articles/intel-power-web-api-documentation-and-examples">leaving comments</a>.
  </p>
  <table >
    <tr>
      <th >Browser</th><th >Operating System</th><th >Notes</th>
    </tr>
    <tr>
      <td>Firefox 3.5.x, 3.6.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Chrome 4.0.x.y</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Safari 4.0.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Opera v 10.x </td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Not currently working. It's on the debug todo list.</td>
    </tr>
    <tr>
      <td>Internet Explorer 8.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Not supported yet. Its on the todo list though.</td>
    </tr>
    <tr>
      <td>Firefox, Chrome, Safari</td>
      <td>Linux, MacOS</td>
      <td>Not supported yet. Linux and Mac OS porting is underway :)</td>
    </tr>
  </table>
</div>

<br/>
<div >
  <a name="A code sample to get you started">A code sample to get you started</a>
</div>
<div >
<p>
  This HTML & JavaScript shows you how to embed the Intel Power Web API
  into your app.
</p>
<pre >
  &lt;div id="IntelWebAPIs_sample_code_status_div" 
    &gt;&lt;/div&gt;
  &lt;script 
    type="text/javascript" 
    src="http://software.intel.com/sites/whatif/webapis/intelwebapis.js"&gt;
  &lt;/script&gt;
  &lt;script type="text/javascript"&gt;
  
    // this outer closure just to keep the sample code from cluttering up
    // the namespace with the function names etc being used
    (function() {
      
      //kick off IntelWebAPIs.init() and IntelWebAPIs.require() when
      //the page is loaded
      add_onload_handler( function() {
  
        IntelWebAPIs.init(init_result_func);
        
        //called by IntelWebAPIs.init()
        function init_result_func(result) {
          if(result.success) {
            // now bring in Intel Web APIs required by your app...
            output_status("IntelWebAPIs Connector init success");
            IntelWebAPIs.require(["power"], require_completion_func, require_progress_func);
          }
          else {
            output_status("IntelWebAPIs Connector init error: " + result.error.msg);
            //handle error condition
            //result.error.msg contains an error message
            //result.connectorInstUrl contains the url to the Intel Web API connector installer
            output_status("you may need to download the Intel Web API connector from here: " + 
              result.connectorInstUrl);
          }
        }
    
        //called by IntelWebAPIs.require()
        function require_completion_func(result) {
          if(result.success){
            //you can now use IntelWebAPIs.power properties and functions
            output_status("IntelWebAPIs." + result.installInfo.plugins[0].name + " ready for use!");
            setInterval(function(){
              // send a status message to our div every second
              output_status("Device is using AC power: " + IntelWebAPIs.power.usingExternalPowerSource);
              output_status("Device power level: " + IntelWebAPIs.power.powerLevel + " %");
              if(IntelWebAPIs.power.usingExternalPowerSource == false){
                output_status("Device battery time remaining: " + 
                  Math.round((IntelWebAPIs.power.timeRemaining / 60)) + " minutes");
              }
            },1000);
          }
          else {
            //check other result properties and handle error condition
            output_status("IntelWebAPIs error: " + result.installInfo.msg);
          }
        }
        
        //called by IntelWebAPIs.require()
        function require_progress_func(statusMsg){
          //statusMsg is a string - send this wherever
          output_status("IntelWebAPIs connector status: " + statusMsg);
        }
      
      });
      
      /* Its recommended that you wait until the document is loaded 
         before calling IntelWebAPIs.init() and IntelWebAPIs.require() 
         This utility helps with that...*/
      function add_onload_handler(addfunc, altwindow) {
        var targwindow = window;
        if(typeof(altwindow) != 'undefined'){
          targwindow = altwindow;
        }
        
        /* chain the onload functions together */
        var prevf = targwindow.onload;
        var newf  = addfunc;
        targwindow.onload = function(){
            newf();
            if(typeof(prevf) == 'function'){
              prevf();
            }
          };
      }
      
      /* utility that outputs status messages to a div*/
      function output_status(str) {
        var divout = document.getElementById("IntelWebAPIs_sample_code_status_div");
        divout.innerHTML += str + "&lt;br/&gt;";
        divout.scrollTop = divout.scrollHeight;
      }
    })(); // end of outer closure
  &lt;/script&gt;
</pre>
<br/>
<p>
  This is the result Object that is passed into init_result_func(result).<br/>
  If the Intel Web API Connector is not yet installed on a user's device you can
  use the result.connectorInstUrl to prompt the user, in the context of your
  app, to install it.<br/> 
  Once the Intel Web API Connector is installed other apis are installed by the
  connector, with minimal user interruption, when your app calls IntelWebAPIs.require().
</p>

<pre >
  result = { 
    success           : boolean,
    
    // these fields are valid if success != true
    connectorInstUrl  : string 
    error             : {
      msg             : string 
    } 
  }
</pre>
<br/>
This is the result Object that is passed into require_completion_func(result).<br/><br/>
<pre >
  result = { 
    success       : boolean,
    
    installInfo   : {
      msg         : string,
      
      plugins     : [ { 
        name      : string,
        installed : boolean,
        details   : string
        }, 
        //...
      ], 
    }
  }  
</pre>
</div>

<br/>
<div >
<a name="JavaScript API Details">JavaScript API Details</a>
</div>
<div >
These are the properties exposed by the Power Web API:<br/><br/>
<pre >
  IntelWebAPIs.power = {
    'version'                   : string,
    'usingExternalPowerSource'  : boolean,
    'timeRemaining'             : number,
    'powerLevel'                : number
  };
</pre>
<br/>
<div >
<a name="IntelWebAPIs.power.version">IntelWebAPIs.power.version</a>
</div>
<div>
This is the API's version string. It is formatted as "major.minor.patch" where major
and minor are numbers and patch is a string.
</div>
<br/>
<div >
<a name="IntelWebAPIs.power.usingExternalPowerSource">IntelWebAPIs.power.usingExternalPowerSource</a>
</div>
<div>
The IntelWebAPIs.power.usingExternalPowerSource is true if the device is on AC power, false if the
device is using batteries. On desktop systems where batteries are not detected this will return true.
</div>
<br/>
<div >
<a name=IntelWebAPIs.power.timeRemaining">IntelWebAPIs.power.timeRemaining</a>
</div>
<div>
When IntelWebAPIs.power.usingExternalPowerSource == true, the IntelWebAPIs.power.timeRemaining property 
provides the number of seconds remaining of battery life. When 
IntelWebAPIs.power.usingExternalPowerSource == false this value is -1.<br/>
This value will also be -1 if unknown - if the API is unable to determine time remaining from
the underlying system software.
</div>
<br/>
<div >
<a name="IntelWebAPIs.power.powerLevel">IntelWebAPIs.power.powerLevel</a>
</div>
<div>
The IntelWebAPIs.power.powerLevel is true provides the current charge level
of the device's batteries as a percent.<br/>
This will be -1 if unknown - if the API is unable to determine the charge level
from the underlying system software.
</div>
<br/><br/>
These JavaScript functions demonstrate accessing the power information:
<br/><br/>
<pre >
  function output_timeRemaining(){
    alert("timeRemaining=" + IntelWebAPIs.power.timeRemaining);
  }
  
  function output_usingExternalPowerSource(){
    alert("usingExternalPowerSource=" + IntelWebAPIs.power.usingExternalPowerSource);
  }

  function output_powerLevel(){
    var selplugin = get_sel_plugin();
    alert("powerLevel=" + IntelWebAPIs.power.powerLevel);
  }
</pre>
</div>
<br/><br/>
<div >
<a name="See it working" href="http://software.intel.com/sites/whatif/webapis/api/power">See it working in this page!</a>
</div>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-power-web-api-documentation-and-examples/</link>
      <pubDate>Tue, 09 Feb 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-power-web-api-documentation-and-examples/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-power-web-api-documentation-and-examples/</guid>
      <category>What If Experimental Software</category>
      <category>Code &amp; Downloads</category>
    </item>
    <item>
      <title>Intel CPU Web API Documentation and Examples</title>
      <description><![CDATA[ <p>
The Intel CPU Web API provides web developers with JavaScript access to 
information about the CPU and current CPU utilization.
</p>

<div >
<a name="Contents">Contents</a>
</div>
<div >
  <ul>
    <li>
      <a href="http://software.intel.com#Overview">Overview</a>
    </li>
    <li>
      <a href="http://software.intel.com#Browser and Device Compatibility">Browser and Device Compatibility</a>
    </li>
    <li>
      <a href="http://software.intel.com#A code sample to get you started">A code sample to get you started</a>
    </li>
    <li>
      <a href="http://software.intel.com#JavaScript API Details">JavaScript API Details</a>
    </li>
    <li>
      <a href="http://software.intel.com#See it working">See it working in this page!</a>
    </li>
  </ul>
</div>

<br/>
<div >
  <a name="Overview">Overview</a>
</div>
<div >
    <p>
    When web apps have the ability to learn about some of the
    characteristics of the device's CPU and the current CPU load they
    are able to make use of that information to create a better
    experience for the user.
    </p>
    <p>
    For instance, in combination with other information about the device, a web 
    app might use CPU information to request a video stream which is approprate
    for the device's CPU decode capability. A web app may determine that
    current CPU utilization is too high for the app to function appropriatly
    for the desired user experience - and may prompt the user to shut down
    some applicaitons before proceeding. 
    </p>
</div>

<br/>
<div >
<a name="Browser and Device Compatibility">Browser and Device Compatibility</a>
</div>
<div >
  <p>
  The table below lists some compatability notes for browser and operating system combinations.
  This API is currently beta quality.
  </p>
  <p>
  If you are interested in seeing these APIs available on other device types and operating systems 
  please let us know by <a href="http://software.intel.com/en-us/articles/intel-cpu-web-api-documentation-and-examples">leaving comments</a>.
  </p>
  <table >
    <tr>
      <th >Browser</th><th >Operating System</th><th >Notes</th>
    </tr>
    <tr>
      <td>Firefox 3.5.x, 3.6.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Chrome 4.0.x.y</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Safari 4.0.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Seems to be working well.</td>
    </tr>
    <tr>
      <td>Opera v 10.x </td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Not currently working. It's on the debug todo list.</td>
    </tr>
    <tr>
      <td>Internet Explorer 8.x</td>
      <td>Windows (XP, Vista, Win 7)</td>
      <td>Not supported yet. Its on the todo list though.</td>
    </tr>
    <tr>
      <td>Firefox, Chrome, Safari</td>
      <td>Linux, MacOS</td>
      <td>Not supported yet. Linux and Mac OS porting is underway :)</td>
    </tr>
  </table>
</div>

<br/>
<div >
  <a name="A code sample to get you started">A code sample to get you started</a>
</div>
<div >
<p>
  This HTML & JavaScript shows you how to embed the Intel CPU Web API
  into your app.
</p>
<pre >
  &lt;div id="IntelWebAPIs_sample_code_status_div" 
    &gt;&lt;/div&gt;
  &lt;script 
    type="text/javascript" 
    src="http://software.intel.com/sites/whatif/webapis/intelwebapis.js"&gt;
  &lt;/script&gt;
  &lt;script type="text/javascript"&gt;

    // this outer closure just to keep the sample code from cluttering up
    // the namespace with the function names etc being used
    (function() {
      
      //kick off IntelWebAPIs.init() and IntelWebAPIs.require() when
      //the page is loaded
      add_onload_handler( function() {

        IntelWebAPIs.init(init_result_func);
        
        //called by IntelWebAPIs.init()
        function init_result_func(result) {
          if(result.success) {
            // now bring in Intel Web APIs required by your app...
            output_status("IntelWebAPIs Connector init success");
            IntelWebAPIs.require(["cpu"], require_completion_func, require_progress_func);
          }
          else {
            output_status("IntelWebAPIs Connector init error: " + result.error.msg);
            //handle error condition
            //result.error.msg contains an error message
            //result.connectorInstUrl contains the url to the Intel Web API connector installer
            output_status("you may need to download the Intel Web API connector from here: " + 
              result.connectorInstUrl);
          }
        }
    
        //called by IntelWebAPIs.require()
        function require_completion_func(result) {
          if(result.success){
            //you can now use IntelWebAPIs.cpu properties and functions
            output_status("IntelWebAPIs." + result.installInfo.plugins[0].name + " ready for use!");
            output_status("Your CPU Name is: " + IntelWebAPIs.cpu.name);
            setInterval(function(){
              // send a status message to our div every second
              var cpuLoad = Math.round((IntelWebAPIs.cpu.load * 100) * 100)/100;
              output_status("CPU Load =" + cpuLoad + " %");
            },1000);
          }
          else {
            //check other result properties and handle error condition
            output_status("IntelWebAPIs error: " + result.installInfo.msg);
          }
        }
        
        //called by IntelWebAPIs.require()
        function require_progress_func(statusMsg){
          //statusMsg is a string - send this wherever
          output_status("IntelWebAPIs connector status: " + statusMsg);
        }
      
      });
      
      /* Its recommended that you wait until the document is loaded 
         before calling IntelWebAPIs.init() and IntelWebAPIs.require() 
         This utility helps with that...*/
      function add_onload_handler(addfunc, altwindow) {
        var targwindow = window;
        if(typeof(altwindow) != 'undefined'){
          targwindow = altwindow;
        }
        
        /* chain the onload functions together */
        var prevf = targwindow.onload;
        var newf  = addfunc;
        targwindow.onload = function(){
            newf();
            if(typeof(prevf) == 'function'){
              prevf();
            }
          };
      }
      
      /* utility that outputs status messages to a div*/
      function output_status(str) {
        var divout = document.getElementById("IntelWebAPIs_sample_code_status_div");
        divout.innerHTML += str + "&lt;br/&gt;";
        divout.scrollTop = divout.scrollHeight;
      }
    })(); // end of outer closure
  &lt;/script&gt;
</pre>
<br/>
<p>
  This is the result Object that is passed into init_result_func(result).<br/>
  If the Intel Web API Connector is not yet installed on a user's device you can
  use the result.connectorInstUrl to prompt the user, in the context of your
  app, to install it.<br/> 
  Once the Intel Web API Connector is installed other apis are installed by the
  connector, with minimal user interruption, when your app calls IntelWebAPIs.require().
</p>

<pre >
  result = { 
    success           : boolean,
    
    // these fields are valid if success != true
    connectorInstUrl  : string 
    error             : {
      msg             : string 
    } 
  }
</pre>
<br/>
This is the result Object that is passed into require_completion_func(result).<br/><br/>
<pre >
  result = { 
    success       : boolean,
    
    installInfo   : {
      msg         : string,
      
      plugins     : [ { 
        name      : string,
        installed : boolean,
        details   : string
        }, 
        //...
      ], 
    }
  }  
</pre>
</div>

<br/>
<div >
<a name="JavaScript API Details">JavaScript API Details</a>
</div>
<div >
These are the properties exposed by the CPU Web API:<br/><br/>
<pre >
  IntelWebAPIs.cpu = {
    'version'     : string,
    'name'        : string,
    'load'        : float
  };
</pre>
<br/>
<div >
<a name="IntelWebAPIs.cpu.version">IntelWebAPIs.cpu.version</a>
</div>
<div>
This is the API's version string. It is formatted as "major.minor.patch" where major
and minor are numbers and patch is a string.
</div>
<br/>
<div >
<a name="IntelWebAPIs.cpu.name">IntelWebAPIs.cpu.name</a>
</div>
<div>
The IntelWebAPIs.cpu.name property provides the device's CPU name string. This is useful
for applications that want to determine which app features should run on the client
device and which features should run in the cloud.
</div>
<br/>
<div >
<a name=IntelWebAPIs.cpu.load">IntelWebAPIs.cpu.load</a>
</div>
<div>
The IntelWebAPIs.cpu.load property provides the device's CPU load. 0.0 is the
minimum possible load and 1.0 is maximum possible load. 
Multiplying by 100 gives converts the value to a percentage.
</div>
<br/><br/>
These JavaScript functions demonstrate accessing the cpu information:
<br/><br/>
<pre >
  function output_cpu_name(){
    alert("cpu name = " + IntelWebAPIs.cpu.name);
  }
  
  function output_cpu_load(){
    var currLoad = IntelWebAPIs.cpu.load * 100;
    alert("cpu load = " + currLoad + " %");
  }
</pre>
</div>
<br/><br/>
<div >
<a name="See it working" href="http://software.intel.com/sites/whatif/webapis/api/cpu">See it working in this page!</a>
</div>
 ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cpu-web-api-documentation-and-examples/</link>
      <pubDate>Tue, 09 Feb 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cpu-web-api-documentation-and-examples/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cpu-web-api-documentation-and-examples/</guid>
      <category>What If Experimental Software</category>
      <category>Code &amp; Downloads</category>
    </item>
  </channel></rss>
