<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi Jeremy,<br>
<br>
Thanks for pointing out this problem to us!<br>
<br>
Everything looks fine with your install/setup/usage of Darshan at first glance, and it turns out we can easily reproduce this same error using your code snippet.<br>
<br>
The problem is that the ofstream implementation is confusing Darshan's internal instrumentation methods. Basically, the ofstream code is calling libc fopen() under the covers when you open the file (or construct the ofstream type in your case), but it is issuing
 underlying write operations to that file using libc write() call. fopen() returns a FILE*, but write() takes a file descriptor, so internally ofstream is converting the FILE* to a descriptor using the fileno() call, but Darshan is not explicitly accounting
 for that in its tracking of file pointers/descriptors. We need to add functionality to additionally wrap fileno() so that Darshan can easily map between FILE* and descriptors mapping to the same file.
<br>
<br>
We recently created a ticket to add fileno instrumentation into Darshan, so I added more notes about this particular failure mode there:
<a class="moz-txt-link-freetext" href="https://xgitlab.cels.anl.gov/darshan/darshan/issues/248">
https://xgitlab.cels.anl.gov/darshan/darshan/issues/248</a><br>
<br>
We will take a look at getting that fixed and can let you know when we have committed a fix for it soon.<br>
<br>
--Shane<br>
<br>
<div class="moz-cite-prefix">On 10/29/2018 10:11 AM, Jérémy Fouriaux wrote:<br>
</div>
<blockquote type="cite" cite="mid:d2258ac425514016895d78e550f9671d@inait.ai"><style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hello everyone,</p>
<p>I enjoyed a lot working with installed darshan on HPC systems and I tried to install it on my Linux Ubuntu machine to profile posix related IOs.</p>
<p>Installation went fine using darshan 3.1.6<br>
</p>
<p>```   <span><br>
</span></p>
<p><span>./configure CC=mpicc --prefix <span>/home/jeremy/Devel/Darshan_try/</span> --with-mem-align=8 --with-log-path-by-env=DARSHAN_LOG_DIR --with-jobid-env=NONE</span></p>
<p><span>make && make install</span></p>
<p><span>```</span></p>
<p><span><br>
</span></p>
<p><span>Then I have intended to use darshan dynamic load mode with a sample program that write a file with 4k bytes:</span></p>
<p><br>
<span></span></p>
<p><span>```</span></p>
<p><span></span></p>
<div>include <fstream><br>
#include <cstdlib><br>
#include <mpi.h><br>
int main (int argc, char** argv) {<br>
  MPI_Init (0, nullptr);<br>
  std::ofstream output (argv[1], std::ofstream::binary);<br>
  size_t size = atoi(argv[2]);<br>
  char* buffer = new char[size];<br>
  output.write (buffer, size);<br>
  output.close();<br>
  delete [] buffer;<br>
  MPI_Finalize();<br>
  return 0;<br>
}<br>
</div>
```
<p><span>compiled with mpic++, backend compiler g++, mpi library: openmpi <br>
</span></p>
<p><span>```<br>
</span></p>
<p><span>mpic++ --std=c++14 my_program.cpp -o my_program</span></p>
<p><span>```<br>
</span></p>
<p><span>launched in a test.sh file:</span></p>
<p><span><br>
</span></p>
<p><span>```</span></p>
<p><span></span></p>
<div>#!/usr/bin/env sh<br>
current_path=`pwd`<br>
#export DARSHAN_LOGFILE=${current_path}/logs/darshan.log<br>
export PATH=${PATH}:/home/jeremy/Devel/Darshan_try/bin<br>
export DARSHAN_LOG_DIR=${current_path}/logs<br>
rm -rf ${current_path}/logs<br>
mkdir ${current_path}/logs<br>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jeremy/Devel/Performances/Darshan/example/<br>
export LD_PRELOAD=/home/jeremy/Devel/Darshan_try/lib/libdarshan.so <br>
# writing 4k bytes in a file<br>
mpirun -n 1 ./mpi_write_file test.txt 4000<br>
<br>
darshan-job-summary.pl ${current_path}/logs/*<br>
<span>```</span><br>
<span></span></div>
<p><span><br>
</span></p>
<p>the output of darshan-job-summary is the following:</p>
<p>```</p>
<div>This darshan log has no file records. No summary was produced.<br>
    jobid:  3881<br>
      uid:  1000<br>
starttime: Mo Okt 29 16:07:41 2018 ( 1540825661 )<br>
  runtime:  1 (seconds)<br>
   nprocs:  1<br>
  version: 3.10<br>
<br>
</div>
<p>```<br>
</p>
<p><br>
</p>
<p>I don't really understand why there is no records for my file write of 4000 bytes, is there something I have done incorrectly ?</p>
<p>I have attached the darshan output file.</p>
<p><br>
</p>
<p><br>
</p>
<p>Best regards,</p>
<p>Jeremy.</p>
<p><br>
</p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset> <br>
<pre wrap="">_______________________________________________
Darshan-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Darshan-users@lists.mcs.anl.gov">Darshan-users@lists.mcs.anl.gov</a>
<a class="moz-txt-link-freetext" href="https://lists.mcs.anl.gov/mailman/listinfo/darshan-users">https://lists.mcs.anl.gov/mailman/listinfo/darshan-users</a>
</pre>
</blockquote>
<br>
</body>
</html>