<html lang='en'>
<head>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
<title>
GitLab
</title>
</meta>
</head>
<style>
  img {
    max-width: 100%;
    height: auto;
  }
  p.details {
    font-style:italic;
    color:#777
  }
  .footer p {
    font-size:small;
    color:#777
  }
  pre.commit-message {
    white-space: pre-wrap;
  }
  .file-stats a {
    text-decoration: none;
  }
  .file-stats .new-file {
    color: #090;
  }
  .file-stats .deleted-file {
    color: #B00;
  }
</style>
<body>
<div class='content'>
<h3>
Shane Snyder pushed to branch master
at <a href="https://xgitlab.cels.anl.gov/darshan/darshan">darshan / darshan</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/fd0a94137c377faae0d9a16233774a48ff7a2db8">fd0a9413</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class='commit-message'>update regression scripts to use .darshan output</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/edb0a0b0f285829dd55b259908d383378200a823">edb0a0b0</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class='commit-message'>add example output logs for x86_64 & ppc64</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/6f7229a376657317aae03999284ddc8e0c77ff06">6f7229a3</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class='commit-message'>fix makefile clean to remove darshan-diff</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/a5778368a7334baa6616571f5346e3004ce360b9">a5778368</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class='commit-message'>update documentation for darshan-runtime component

Darshan now provides debugging tips for cases where log files
are not generated.</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/8f3e3c9e371dbdac32fca29392eb1b22766c6f36">8f3e3c9e</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class='commit-message'>Updated ChangeLog prior to 3.0.0 offiicial release</pre>
</li>
</ul>
<h4>9 changed files:</h4>
<ul>
<li class='file-stats'>
<a href='#diff-0'>
ChangeLog
</a>
</li>
<li class='file-stats'>
<a href='#diff-1'>
darshan-runtime/doc/darshan-runtime.txt
</a>
</li>
<li class='file-stats'>
<a href='#diff-2'>
<span class='new-file'>
+
darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan
</span>
</a>
</li>
<li class='file-stats'>
<a href='#diff-3'>
<span class='new-file'>
+
darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan
</span>
</a>
</li>
<li class='file-stats'>
<a href='#diff-4'>
darshan-test/regression/test-cases/cxxpi.sh
</a>
</li>
<li class='file-stats'>
<a href='#diff-5'>
darshan-test/regression/test-cases/fperf-f77.sh
</a>
</li>
<li class='file-stats'>
<a href='#diff-6'>
darshan-test/regression/test-cases/fperf-f90.sh
</a>
</li>
<li class='file-stats'>
<a href='#diff-7'>
darshan-test/regression/test-cases/mpi-io-test.sh
</a>
</li>
<li class='file-stats'>
<a href='#diff-8'>
darshan-util/Makefile.in
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id='diff-0'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-0'>
<strong>
ChangeLog
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/ChangeLog
</span><span style="color: #000000;background-color: #ddffdd">+++ b/ChangeLog
</span><span style="color: #aaaaaa">@@ -4,6 +4,11 @@ Darshan Release Change Log
</span> 
 Darshan-3.0.0
 =============
<span style="color: #000000;background-color: #ddffdd">+* update docs to give debugging tips for cases where
+  Darshan logs are not generated
+* fix shared library regression test script to check for
+  potential errors with Darshan symbols rather than
+  failing silently in these cases
</span> * bug fix for determining minimum non-zero counters in
 shared file reductions in all modules
 * loosen Darshan's PMPI symbol check to prevent inadvertent
</code></pre>

<br>
</li>
<li id='diff-1'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-1'>
<strong>
darshan-runtime/doc/darshan-runtime.txt
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-runtime/doc/darshan-runtime.txt
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-runtime/doc/darshan-runtime.txt
</span><span style="color: #aaaaaa">@@ -213,17 +213,36 @@ environment variable to insert instrumentation at run time.  The executables
</span> should be compiled using the normal, unmodified MPI compiler.
 
 To use this mechanism, set the `LD_PRELOAD` environment variable to the full
<span style="color: #000000;background-color: #ffdddd">-path to the Darshan shared library, as in this example:
</span><span style="color: #000000;background-color: #ddffdd">+path to the Darshan shared library. The preferred method of inserting Darshan
+instrumentation in this case is to set the LD_PRELOAD variable specifically
+for the application of interest. Typically this is possible using
+command line arguments offered by the `mpirun` or `mpiexec` scripts or by
+the job scheduler:
</span> 
 ----
<span style="color: #000000;background-color: #ffdddd">-export LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so
</span><span style="color: #000000;background-color: #ddffdd">+mpiexec -n 4 -env LD_PRELOAD /home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+----
+srun -n 4 --export=LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+For sequential programs, the following will set LD_PRELOAD for process duration only:
+
</span> ----
<span style="color: #000000;background-color: #ddffdd">+env LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+Other environments may have other specific options for controlling this behavior.
+Please check your local site documentation for details.
</span> 
<span style="color: #000000;background-color: #ffdddd">-You can then run your application as usual.  Some environments may require a
-special `mpirun` or `mpiexec` command line argument to propagate the
-environment variable to all processes.  Other environments may require a
-scheduler submission option to control this behavior.  Please check your
-local site documentation for details.
</span><span style="color: #000000;background-color: #ddffdd">+It is also possible to just export LD_PRELOAD as follows, but it is recommended
+against doing that to prevent Darshan and MPI symbols from being pulled into
+unrelated binaries:
+
+----
+export LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so
+----
</span> 
 === Instrumenting dynamically-linked Fortran applications
 
<span style="color: #aaaaaa">@@ -511,3 +530,47 @@ behavior at runtime:
</span> * DARSHAN_LOGPATH: specifies the path to write Darshan log files to. Note that this directory needs to be formatted using the darshan-mk-log-dirs script.
 * DARSHAN_LOGFILE: specifies the path (directory + Darshan log file name) to write the output Darshan log to. This overrides the default Darshan behavior of automatically generating a log file name and adding it to a log file directory formatted using darshan-mk-log-dirs script.
 * DARSHAN_MODMEM: specifies the maximum amount of memory (in MiB) a Darshan instrumentation module can consume at runtime.
<span style="color: #000000;background-color: #ddffdd">+
+== Debugging
+
+=== No log file
+
+In cases where Darshan is not generating a log file for an application, some common things to check are:
+
+* Check stderr to ensure Darshan isn't indicating any internal errors (e.g., invalid log file path)
+
+For statically linked executables:
+
+* Ensure that Darshan symbols are present in the underlying executable by running `nm` on it:
+----
+> nm test | grep darshan
+0000000000772260 b darshan_core
+0000000000404440 t darshan_core_cleanup
+00000000004049b0 T darshan_core_initialize
+000000000076b660 d darshan_core_mutex
+00000000004070a0 T darshan_core_register_module
+----
+
+* Make sure the application executable is statically linked:
+    ** In general, we encourage the use of purely statically linked executables when using the static
+instrumentation method given in link:darshan-runtime.html#_instrumenting_statically_linked_applications[Section 5]
+    ** If purely static executables are not an option, we encourage users to use the LD_PRELOAD method of
+instrumentation given in link:darshan-runtime.html#_instrumenting_dynamically_linked_applications[Section 6]
+    ** Statically linked executables are the default on Cray platforms and the IBM BG platforms; 
+statically linked executables can be explicitly requested using the `-static` compile option to most compilers
+    ** You can verify that an executable is purely statically linked by using the `file` command:
+----
+> file mpi-io-test
+mpi-io-test: ELF 64-bit LSB  executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=9893e599e7a560159ccf547b4c4ba5671f65ba32, not stripped
+----
+
+* Ensure that the linker is correctly linking in Darshan's runtime libraries:
+    ** A common mistake is to explicitly link in the underlying MPI libraries (e.g., `-lmpich` or `-lmpichf90`)
+in the link command, which can interfere with Darshan's instrumentation
+        *** These libraries are usually linked in automatically by the compiler
+        *** MPICH's `mpicc` comipler's `-show` flag can be used to examine the invoked link command, for instance
+    ** The linker's `-y` option can be used to verify that Darshan is properly intercepting MPI_Init
+function (e.g. by setting `CFLAGS='-Wl,-yMPI_Init'`), which it uses to initialize its runtime structures
+----
+/usr/common/software/darshan/3.0.0-pre3/lib/libdarshan.a(darshan-core-init-finalize.o): definition of MPI_Init
+----
</span></code></pre>

<br>
</li>
<li id='diff-2'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-2'>
<strong>
darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan
</strong>
</a>
<hr>
<pre class="highlight"><code>Binary files /dev/null and b/darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan differ
</code></pre>

<br>
</li>
<li id='diff-3'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-3'>
<strong>
darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan
</strong>
</a>
<hr>
<pre class="highlight"><code>Binary files /dev/null and b/darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan differ
</code></pre>

<br>
</li>
<li id='diff-4'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-4'>
<strong>
darshan-test/regression/test-cases/cxxpi.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-test/regression/test-cases/cxxpi.sh
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-test/regression/test-cases/cxxpi.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=cxxpi
 
 # set log file path; remove previous log if present
<span style="color: #000000;background-color: #ffdddd">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="color: #000000;background-color: #ddffdd">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id='diff-5'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-5'>
<strong>
darshan-test/regression/test-cases/fperf-f77.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-test/regression/test-cases/fperf-f77.sh
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-test/regression/test-cases/fperf-f77.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=fperf-f77
 
 # set log file path; remove previous log if present
<span style="color: #000000;background-color: #ffdddd">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="color: #000000;background-color: #ddffdd">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id='diff-6'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-6'>
<strong>
darshan-test/regression/test-cases/fperf-f90.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-test/regression/test-cases/fperf-f90.sh
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-test/regression/test-cases/fperf-f90.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=fperf-f90
 
 # set log file path; remove previous log if present
<span style="color: #000000;background-color: #ffdddd">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="color: #000000;background-color: #ddffdd">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id='diff-7'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-7'>
<strong>
darshan-test/regression/test-cases/mpi-io-test.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-test/regression/test-cases/mpi-io-test.sh
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-test/regression/test-cases/mpi-io-test.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=mpi-io-test
 
 # set log file path; remove previous log if present
<span style="color: #000000;background-color: #ffdddd">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="color: #000000;background-color: #ddffdd">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id='diff-8'>
<a href='https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36#diff-8'>
<strong>
darshan-util/Makefile.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="color: #000000;background-color: #ffdddd">--- a/darshan-util/Makefile.in
</span><span style="color: #000000;background-color: #ddffdd">+++ b/darshan-util/Makefile.in
</span><span style="color: #aaaaaa">@@ -153,7 +153,7 @@ endif
</span> 
 
 clean::
<span style="color: #000000;background-color: #ffdddd">-        rm -f *.o *.po *.a darshan-analyzer darshan-convert darshan-parser jenkins-hash-gen
</span><span style="color: #000000;background-color: #ddffdd">+   rm -f *.o *.po *.a darshan-analyzer darshan-convert darshan-diff darshan-parser jenkins-hash-gen
</span> 
 distclean:: clean
        rm -f darshan-runtime-config.h aclocal.m4 autom4te.cache/* config.status config.log Makefile util/bin/darshan-job-summary.pl
</code></pre>

<br>
</li>

</div>
<div class='footer' style='margin-top: 10px;'>
<p>

<br>
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608...8f3e3c9e371dbdac32fca29392eb1b22766c6f36">View it on GitLab</a>.
<br>
You're receiving this email because of your account on xgitlab.cels.anl.gov.
If you'd like to receive fewer emails, you can
adjust your notification settings.

</p>
</div>
</body>
</html>