<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 16:30:14 -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-trace-analyzer-and-collector-for-linux-kb/type/known-issues/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-trace-analyzer-and-collector-for-linux-kb/known-issues/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>I&amp;#39;m using system() calls in my app and itcpin fails when writing trace file.</title>
      <description><![CDATA[ <p><strong>Issue</strong></p>
<p>I have a program,  <strong>test.f90</strong>, that uses system() calls and am trying to instrument it using the  <code style="white-space:normal"><strong>itcpin</strong></code> utility as part of the Intel® Trace Analyzer and Collector. Compilation is as follows:</p>
<blockquote><code style="white-space:normal">$ mpiifort -o test.exe test.f90</code></blockquote>
<p>I'm able to run it without issues:</p>
<blockquote><code style="white-space:normal">$ mpiexec -n 2 ./test.exe <br />Process 1 of 2 proc on host node1 <br />Process 2 of 2 proc on host node2</code></blockquote>
<p>Manually linking with the Intel® Trace Collector library functions correctly and produces trace files:</p>
<blockquote><code style="white-space:normal">$ mpiexec -trace -n 2 ./test.exe <br />Process 1 of 2 proc on host node1 <br />Process 2 of 2 proc on host node2 <br />[0] Intel(R) Trace Collector INFO: Writing tracefile test.exe.stf in /home/user</code></blockquote>
<p>But using binary instrumentation produces the following error:</p>
<blockquote><code style="white-space:normal">$ mpiexec -n 2 itcpin --run -- ./test.exe <br />forrtl: severe (24): end-of-file during read, unit 20, file /tmp/mhost_0 <br />Warning: execution of command " <br />/bin/hostname &gt; /tmp/mhost_0 <br /> " failed <br />rank 0 in job 15 node1_54486 caused collective abort of all ranks <br /> exit status of rank 0: return code 24</code></blockquote>
<p>Furthermore, the error message at failure is:</p>
<blockquote><code style="white-space:normal">DPLACE BUG: libdplace: dplace_ioctl: Invalid argument</code></blockquote>
<p>What's wrong?</p>
<p><strong>Solution:</strong></p>
<p>The issue lies in the system() call used and the fact that it forks some number of children. In this case, <code style="white-space:normal"><strong>itcpin</strong></code> follows the forks but, because they're not MPI processes, is unable to determine the correct default VT library to insert. The current work-around is to manually insert <strong>libVT</strong> by using the <code style="white-space:normal"><strong>--insert</strong></code> option as follows:</p>
<blockquote><code style="white-space:normal">$ mpiexec -n 2 itcpin --run  <strong>--insert VT</strong> -- ./test.exe</code></blockquote> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-trace-analyzer-and-collector-for-linux-im-using-system-calls-in-my-app-and-itcpin-fails-when-writing-trace-file</link>
      <pubDate>Tue, 23 Jun 2009 12:15:53 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-trace-analyzer-and-collector-for-linux-im-using-system-calls-in-my-app-and-itcpin-fails-when-writing-trace-file#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-trace-analyzer-and-collector-for-linux-im-using-system-calls-in-my-app-and-itcpin-fails-when-writing-trace-file</guid>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
    </item>
  </channel></rss>