<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 17:38:12 -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-cluster-toolkit-for-linux-kb/type/tips-and-techniques/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-cluster-toolkit-for-linux-kb/tips-and-techniques/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Installing the Intel(R) Cluster Tools on Debian-based systems</title>
      <description><![CDATA[ <p><b>I have a Debian-based system and would like to use the Intel® Cluster Tools.  Is there a way?</b></p>
<p>Officially, the Intel Cluster Tools support RPM-based installs only.  For a full list of supported OSes, check out our <a href="http://software.intel.com/en-us/articles/intel-cluster-toolkit-operating-system-compatibility/" target="_blank">compatibility matrix</a>.</p>
<p>If you’d still like to use the tools on Debian and Ubuntu systems, the following steps can help you in, at least, installing the tools.  Note that the process below still requires that a valid license for the desired Cluster Tool is present on the machine.</p>
<ol>
<li>Download the latest version of the Intel® MPI Library for Linux* from the <a href="https://registrationcenter.intel.com/" target="_blank">Intel® Registration Center</a>.</li>
<br />
<li>Untar the package and go down into the newly created directory
<blockquote>$ tar –xzf l_mpi_p_3.2.1.009.tgz<br /> $ cd l_mpi_p_3.2.1.009/</blockquote>
</li>
<br />
<li>Create a new directory and extract the RPM files using the provided install.sh script.  Note that you’d need a valid license to do so.
<blockquote>$ mkdir rpms<br /><br /> $ ./install.sh --extract=./rpms<br /> Extracting components...<br /> Extracting files...    ################################################   [100%]<br /> Product's rpm and EULA have been extracted in ./rpms<br /> Please carefully read EULA before using the product<br /><br /> $ ls –l<br /> 
<table border="0">
<tbody>
<tr>
<td style="margin-right: 10px">intel-mpi-em64t-3.2.1p-009.x86_64.rpm</td>
<td># SDK for the Intel MPI Library for Linux*</td>
</tr>
<tr>
<td style="margin-right: 10px">intel-mpi-rt-em64t-3.2.1p-009.x86_64.rpm     <br /></td>
<td># Runtime component of the Intel MPI Library</td>
</tr>
<tr>
<td style="margin-right: 10px">mpiEULA.txt</td>
<td># End-User License Agreement for the Intel MPI Library.<br /># Read before using.</td>
</tr>
<tr>
<td style="margin-right: 10px">redist.txt</td>
<td># List of Intel MPI Library files whose redistribution is allowed</td>
</tr>
</tbody>
</table>
</blockquote>
</li>
<br />
<li>Convert the <b>RPM</b> files into <b>DEB</b> files, to be installed on your Debian-based system using the <b>alien</b> utility
<blockquote>$ which alien<br /> /usr/bin/alien<br /><br />$ alien intel-mpi-em64t-3.2.1p-009.x86_64.rpm<br />intel-mpi-em64t_3.2.1p-10_amd64.deb generated</blockquote>
Here note that converting the SDK package for the Intel MPI Library is enough, as the runtime libraries are already contained within.</li>
<br />
<li>Now that you have the <b>.deb</b> file generated, install using your preferred method.  For example, this is how it’s done using the <b>dpkg</b> utility
<blockquote># This will use the default /opt/intel installation directory<br />$ dpkg --install intel-mpi-em64t_3.2.1p-10_amd64.deb</blockquote>
</li>
<br />
<li>Done!  You are now free to enjoy the Intel MPI Library at your leisure.</li>
<br />
<p>Even though this example highlighted the Debian-based installation of the Intel MPI Library, the same technique can be applied to the Intel® Cluster Toolkit for Linux*, Intel® Cluster Toolkit Compiler Edition for Linux*, and the Intel® Trace Analyzer and Collector for Linux*.</p>
</ol> ]]></description>
      <link>http://software.intel.com/en-us/articles/installing-cluster-tools-on-debian</link>
      <pubDate>Wed, 19 Aug 2009 09:56:06 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/installing-cluster-tools-on-debian#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/installing-cluster-tools-on-debian</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>How am I notified of updates for my registered products?</title>
      <description><![CDATA[ <p> </p>
<div><b>Problem : </b><br />How am I notified of updates for my registered products?<br /><br /><b>Resolution : </b><br />1) Login to the Intel® Registration Center by entering your Login ID and Password in the Registered Users Login section  of  the web page. You will see a list of all products you have subscribed;<br />2) Click on My account/Change notification preference on My products page below.<br /><br /><img src="http://software.intel.com/file/21592" alt="Notifacation+update+1.PNG" title="Notifacation+update+1.PNG" /><br /><br />3) You will be directed to the page below, check the box of <label for="ctl00_MainContentPlaceHolder_ckYesFilesNotification">Yes, I would like to receive Intel® Software Product update notifications.<br /><img src="http://software.intel.com/file/21593" alt="Notifacation+update+2.PNG" title="Notifacation+update+2.PNG" /><br /><br />4) Click Save Notification Prefences.<br /><br />You will then receive the registered product update notifications.</label></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-notified-updates-for-products</link>
      <pubDate>Mon, 10 Aug 2009 00:40:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-notified-updates-for-products#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-notified-updates-for-products</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Software Development Products Registration Center Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Linux* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>What is IMB and where can I find information about it?</title>
      <description><![CDATA[ <p>IMB stands for the Intel® MPI Benchmarks - the successor to the well known package PMB (Version 2.2) from Pallas GmbH.</p>
<p>To find the user guide, testing methodology documentation and the source code, visit: <a href="http://www.intel.com/software/imb" target="_blank">www.intel.com/software/imb</a> (you need to accept the license agreement first).</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/what-is-imb</link>
      <pubDate>Tue, 12 May 2009 07:52:54 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/what-is-imb#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/what-is-imb</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Integrating Intel MPI Library with Sun Grid Engine </title>
      <description><![CDATA[ <p class="sectionHeadingText">So, you want to use Intel® MPI Library with the Sun* Grid Engine* (SGE) batch scheduler?</p>
<p>The below instructions describe how to run Intel MPI jobs using Sun Grid Engine. This document relates to Linux*.  While there are some differences and additional steps when using Microsoft* Windows*, in general the procedure is the same.</p>
<p>All optional steps are recommended but not necessary for successful integration.</p>
<ol>
<li>[Optional] Visit <a href="http://www.sun.com/software/gridware/" target="_blank">sun.com</a> and get a brief overview of SGE</li>
<li>Installation
<p>See the <a href="http://docs.sun.com/app/docs/doc/820-0697?a=load" target="_blank">Installation Guide</a> from sun.com for details.  Roughly, the steps are as follows:</p>
<ul>
<li>Install Master Host (see ‘How to Install the MasterHost’ section);</li>
<li>Install Execution Host (see ‘How to Install ExecutionHosts’ section);</li>
<li>Register Administration Hosts (see the corresponding section in the Installation Guide);</li>
<li>Register Submit Hosts (see corresponding section);</li>
<li>Verify the installation (see corresponding section).</li>
</ul>
<p>IMPORTANT NOTES:</p>
<ul>
<li>To finalize the installation process, you’ll have to configure the network services manually (by modifying /etc/services), which requires root privileges.</li>
<li>It’s possible to install/run SGE as a non-privileged user, but <ol>
<li>there are some limitations in that case;</li>
<li>you need root privileges for the complete installation process (at least, for modifying /etc/services).</li>
</ol> </li>
</ul>
</li>
<li>Create a new Parallel Environment (PE) for Intel MPI<ol>
<li>Create the appropriate configuration file for the new PE. It should contain the following lines:          
<table border="0">
<tbody>
<tr>
<td width="120">pe_name</td>
<td>impi</td>
</tr>
<tr>
<td>slots</td>
<td>999</td>
</tr>
<tr>
<td>user_lists</td>
<td>NONE</td>
</tr>
<tr>
<td>xuser_lists</td>
<td>NONE</td>
</tr>
<tr>
<td>start_proc_args</td>
<td>NONE</td>
</tr>
<tr>
<td>stop_proc_args</td>
<td>NONE</td>
</tr>
<tr>
<td>allocation_rule</td>
<td>$round_robin</td>
</tr>
<tr>
<td>control_slaves</td>
<td>FALSE</td>
</tr>
<tr>
<td>job_is_first_task</td>
<td>FALSE</td>
</tr>
<tr>
<td>urgency_slots</td>
<td>min</td>
</tr>
</tbody>
</table>
</li>
<li>Add the new PE using the following command:
<blockquote><code>‘qconf –Ap &lt;config_file&gt;’</code></blockquote>
</li>
</ol>
<p>USEFUL COMMANDS:<br />* <code>qconf –spl</code> – view all PEs currently available;<br />* <code>qconf –sp &lt;PE_name&gt;</code> - view settings for a particular PE;<br />* <code>qconf –dp &lt;PE_name&gt;</code> - remove a PE;<br />* <code>qconf –mp &lt;PE_name&gt;</code> - modify an existing PE.</p>
<p>Also see the ‘Managing Special Environment’ section in the <a href="http://docs.sun.com/app/docs/doc/820-0698?a=load" target="_blank">Administration Guide</a> from sun.com if you need more details about PE configuration.</p>
</li>
<li>Associate a queue with the new PE
<p>Use the following commands for that:</p>
<ol>
<li><code>qconf –sql</code> – to see all queues available;</li>
<li><code>qconf –mq &lt;queue_name&gt;</code> - to modify the queue’s settings. Find the ‘pe_list’ property in the open window and add the ‘impi’ string to that property.</li>
</ol>
<p>USEFUL COMMANDS:<br />* <code>qconf –sq &lt;queue_name&gt;</code> - view the queue’s settings.</p>
<p>See the Administration Guide if you need more details about the queue configuration process.</p>
</li>
<li>Add Intel MPI environment to your current environment by sourcing the appropriate <strong>mpivars.[c]sh</strong> script located in the &lt;install_dir&gt;/bin[64] directory</li>
<li>Build the MPI application to be run</li>
<li>[Optional] Make sure that Intel MPI works fine on the desired hosts. For this, manually run your application on the desired hosts individually</li>
<li>Submit your MPI job to SGE
<p>Use the following command for that:</p>
<blockquote><code>qsub -N &lt;job_name&gt; -pe impi &lt;num_of_processes&gt; \<br /> -V &lt;mpirun_absolute_name&gt; -r ssh -np &lt;num_of_processes&gt; &lt;app_absolute_name&gt;</code></blockquote>
<br />where<br />-V option is used so that all environment variables available in the current shell are exported to a job.
<p> </p>
<p>USEFUL COMMANDS to monitor and control jobs:<br />* <code>qstat</code> – show status of SGE jobs and queues;<br />* <code>qstat –j</code> – show detailed information about jobs (can be useful for pending jobs);<br />* <code>qdel</code> – remove existing job.<br />After submitting the job you can monitor its status using the <strong>qstat</strong> command. When the job is finished, you can find the job’s output and error output in your HOME directory – just look for &lt;job_name&gt;.o&lt;jobID&gt; and &lt;job_name&gt;.e&lt;jobID&gt; files.</p>
<p>See the <a href="http://docs.sun.com/app/docs/doc/820-0699?a=load" target="_blank">User’s Guide</a>, if you need more information about the job submission process.</p>
</li>
</ol>
<p class="sectionHeadingText">Closer integration with SGE</p>
<p>Read the 'Tight Integration of Parallel Environments and Grid Engine Software' section in <a href="http://docs.sun.com/app/docs/doc/820-0698?a=load" target="_blank">SGE's Administration Guide</a> first.</p>
<p>To enable tight integration for Intel MPI, use the same procedure as the one mentioned above, but use a different configuration file for the PE at step #3.</p>
<p>The configuration file should contain the following lines:           
<table border="0">
<tbody>
<tr>
<td width="120">pe_name</td>
<td>impi_tight</td>
</tr>
<tr>
<td>slots</td>
<td>999</td>
</tr>
<tr>
<td>user_lists</td>
<td>NONE</td>
</tr>
<tr>
<td>xuser_lists</td>
<td>NONE</td>
</tr>
<tr>
<td>start_proc_args</td>
<td>&lt;SGE_install_dir&gt;/mpi/startmpi.sh -catch_rsh $pe_hostfile</td>
</tr>
<tr>
<td>stop_proc_args</td>
<td>&lt;SGE_install_dir&gt;/mpi/stopmpi.sh</td>
</tr>
<tr>
<td>allocation_rule</td>
<td>$round_robin</td>
</tr>
<tr>
<td>control_slaves</td>
<td>TRUE</td>
</tr>
<tr>
<td>job_is_first_task</td>
<td>FALSE</td>
</tr>
<tr>
<td>urgency_slots</td>
<td>min</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/integrating-intel-mpi-sge</link>
      <pubDate>Fri, 03 Apr 2009 08:22:27 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/integrating-intel-mpi-sge#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/integrating-intel-mpi-sge</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Master node issue</title>
      <description><![CDATA[ <p><strong>Issue</strong></p>
<p>I have a cluster, which has for example 3 nodes, where the mpd.hosts file contains:</p>
<blockquote>$ cat mpd.hosts <br />node2 <br />node3</blockquote>
<p>The  <strong>master node</strong>, which is  <strong>node1</strong> is not listed in the  <strong>mpd.hosts</strong> file. The shell commands:</p>
<blockquote>$ mpdboot -r ssh -n 2 -f ~/mpd.hosts <br />$ mpiexec -n 4 /bin/hostname</blockquote>
which are issued from  <strong>node1</strong> reveal the following:
<blockquote>node1 <br />node1 <br />node2 <br />node2</blockquote>
<p> </p>
<p><strong>Solution</strong></p>
<p>By design, the  <strong>master node</strong> (i.e., the node where the  <strong>mpiexec</strong> command is launched from) needs to have a daemon running. If you want to run your application on  <strong>node2</strong> and  <strong>node3</strong>, you can use the  <strong>-host</strong> options with the  <strong>mpiexec</strong> command as follows:</p>
<blockquote>$ mpdboot -r ssh -n 3 -f ~/mpd.hosts <br />$ mpiexec -n 2 -host node2 /bin/hostname : -n 2 -host node3 /bin/hostname</blockquote>
Or simply to use the <strong>-nolocal</strong> option for <strong>mpiexec</strong> as follows:
<blockquote>$ mpdboot -r ssh -n 3 -f ~/mpd.hosts <br />$ mpiexec -nolocal -n 4 /bin/hostname</blockquote>
<p>This will run the hostname command on nodes  <strong>node2</strong> and  <strong>node3</strong> only, even though there are three mpd daemons total.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cluster-toolkit-for-linux-master-node-issue</link>
      <pubDate>Fri, 23 Jan 2009 12:12:46 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cluster-toolkit-for-linux-master-node-issue#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cluster-toolkit-for-linux-master-node-issue</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>No trace file using Intel® Trace Analyzer and Collector</title>
      <description><![CDATA[ <p><strong>Issue</strong></p>
<p>When I instrument the application  <strong>test.cpp</strong> with the Intel® MPI Library compilation driver  <strong>mpiicpc</strong> and with the Intel® Trace Collector using the command line (listed below) for Itanium®-based systems for Intel® Pentium® 4, Intel® Xeon®, and Intel® 64-based architectures, I do not produce a trace file.</p>
<blockquote><code>mpiicpc test.cpp -g -L${VT_ROOT}/lib -lVT -lvtunwind -ldwarf -lelf -lpthread -lm <br /> -o testcpp_inst</code><br /><br /><strong>or with the command:</strong><br /><br /><code>mpiicpc test.cpp -g -L${VT_ROOT}/lib -lVT -ldwarf -lelf -lpthread -lm <br /> -o testcpp_inst</code></blockquote>
<br />
<p><strong>Solution</strong></p>
<p>When compiling the C++ application  <strong>test.cpp</strong> with the Intel® C/C++ compiler (<strong>mpiicpc</strong>) and with Intel® Trace Collector requires an additional library called  <strong>-lmpiic</strong>. The rule for this is that if one uses the MPI-2 C++ application programming interfaces (APIs) with the Intel® C/C++ compilers, then Intel® Trace Collector cannot intercept the MPI calls as they are written. They have to be mapped to C function calls first, with the help of an MPI implementation-specific wrapper library, which with respect to the command-line, has to be placed in front of the Intel® Trace Collector library. The name of that wrapper library for the  <strong>mpiicpc</strong> compilation driver is  <strong>-lmpiic</strong>. Thus, for Itanium®-base systems the command line should be:</p>
<blockquote><code>mpiicpc test.cpp -g -lmpiic -L${VT_ROOT}/lib -lVT -lvtunwind -ldwarf -lelf -lpthread -lm <br /> -o testcpp_inst</code><br /><br /> and for Intel® Pentium® 4, Intel® Xeon®, and Intel® 64-based architectures the compilation protocol should be:<br /><br /> <code>mpiicpc test.cpp -g -lmpiic -L${VT_ROOT}/lib -lVT -ldwarf -lelf -lpthread -lm <br /> -o testcpp_inst</code></blockquote> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cluster-tools-no-trace-file-using-intel-trace-analyzer-and-collector</link>
      <pubDate>Fri, 16 Jan 2009 15:57:26 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cluster-tools-no-trace-file-using-intel-trace-analyzer-and-collector#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cluster-tools-no-trace-file-using-intel-trace-analyzer-and-collector</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Release notes</title>
      <description><![CDATA[ <p><strong>Note</strong>: This web page refers to the entire set of Intel® Cluster Tools.</p>
<ul>
<li><a href="http://software.intel.com/en-us/articles/intel-mpi-library-documentation/" target="_blank">Release Notes for Intel® MPI Library</a></li>
<li><a href="http://software.intel.com/en-us/articles/intel-trace-analyzer-and-collector-documentation/" target="_blank">Release Notes for Intel® Trace Analyzer and Collector</a></li>
<li><a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/" target="_blank">Release Notes for Intel® Math Kernel Library</a></li>
<li><a href="http://software.intel.com/en-us/articles/intel-cluster-toolkit-documentation/" target="_blank">Release Notes for Intel® Cluster Toolkit and Intel® Cluster Toolkit Compiler Edition</a></li>
</ul>
<p><strong>Operating System:</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="xs">SUSE* Linux Enterprise Server 9.0, SUSE* Linux Enterprise Server 10, Red Hat* Enterprise Linux 4.0, Red Hat* Enterprise Linux 5.0, Windows* Compute Cluster Server 2003, Windows* HPC Server 2008</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-cluster-tools-release-notes</link>
      <pubDate>Fri, 16 Jan 2009 15:04:12 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-cluster-tools-release-notes#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-cluster-tools-release-notes</guid>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Windows* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Windows* Knowledge Base</category>
    </item>
  </channel></rss>