[Darshan-commits] [Git][darshan/darshan][master] 5 commits: make warning message more clear

Shane Snyder xgitlab at cels.anl.gov
Tue Jan 31 11:44:53 CST 2017


Shane Snyder pushed to branch master at darshan / darshan


Commits:
8857f5ff by Shane Snyder at 2017-01-30T21:12:03-06:00
make warning message more clear

- - - - -
dbbfe135 by Shane Snyder at 2017-01-31T09:59:13-06:00
update runtime docs with dxt info

- - - - -
8821f33d by Shane Snyder at 2017-01-31T10:00:17-06:00
ENABLE_DXT_IO_TRACE_MEM => DXT_ENABLE_IO_TRACE

- - - - -
36e039ff by Shane Snyder at 2017-01-31T11:42:49-06:00
change DXT module names

- - - - -
6dd6e0ab by Shane Snyder at 2017-01-31T11:43:03-06:00
update darshan-util docs to describe DxT

- - - - -


7 changed files:

- darshan-log-format.h
- darshan-runtime/doc/darshan-runtime.txt
- darshan-runtime/lib/darshan-core.c
- darshan-runtime/lib/darshan-dxt.c
- darshan-runtime/lib/darshan-mpiio.c
- darshan-runtime/lib/darshan-posix.c
- darshan-util/doc/darshan-util.txt


Changes:

=====================================
darshan-log-format.h
=====================================
--- a/darshan-log-format.h
+++ b/darshan-log-format.h
@@ -140,8 +140,8 @@ struct darshan_base_record
     X(DARSHAN_LUSTRE_MOD,   "LUSTRE",   DARSHAN_LUSTRE_VER,     &lustre_logutils) \
     X(DARSHAN_STDIO_MOD,    "STDIO",    DARSHAN_STDIO_VER,      &stdio_logutils) \
     /* DXT */ \
-    X(DXT_POSIX_MOD,       "X_POSIX",  DXT_POSIX_VER,         &dxt_posix_logutils) \
-    X(DXT_MPIIO_MOD,       "X_MPIIO",  DXT_MPIIO_VER,         &dxt_mpiio_logutils)
+    X(DXT_POSIX_MOD,       "DXT_POSIX",  DXT_POSIX_VER,         &dxt_posix_logutils) \
+    X(DXT_MPIIO_MOD,       "DXT_MPIIO",  DXT_MPIIO_VER,         &dxt_mpiio_logutils)
 
 /* unique identifiers to distinguish between available darshan modules */
 /* NOTES: - valid ids range from [0...DARSHAN_MAX_MODS-1]


=====================================
darshan-runtime/doc/darshan-runtime.txt
=====================================
--- a/darshan-runtime/doc/darshan-runtime.txt
+++ b/darshan-runtime/doc/darshan-runtime.txt
@@ -25,6 +25,13 @@ for jobs running on BG/Q systems, a module for gathering Lustre striping data fo
 files on Lustre file systems, and a module for instrumenting stdio (i.e., stream I/O
 functions like `fopen()`, `fread()`, etc).
 
+Starting in version 3.1.3, Darshan also allows for full tracing of application I/O
+workloads using the newly developed Darshan eXtended Tracing (DXT) instrumentation
+module. This module can be selectively enabled at runtime to provide high-fidelity
+traces of an application's I/O workload, as opposed to the coarse-grained I/O summary
+data that Darshan has traditionally provided. Currently, DXT only traces at the POSIX
+and MPI-IO layers.
+
 This document provides generic installation instructions, but "recipes" for
 several common HPC systems are provided at the end of the document as well.
 
@@ -546,6 +553,7 @@ behavior at runtime:
 * 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) Darshan instrumentation modules can collectively consume at runtime (if not specified, Darshan uses a default quota of 2 MiB).
 * DARSHAN_MMAP_LOGPATH: if Darshan's mmap log file mechanism is enabled, this variable specifies what path the mmap log files should be stored in (if not specified, log files will be stored in `/tmp`).
+* DXT_ENABLE_IO_TRACE: setting this environment variable enables the DXT (Darshan eXtended Tracing) modules at runtime. Users can specify a numeric value for this variable to set the number of MiB to use for tracing per process; if no value is specified, Darshan will use a default value of 4 MiB.
 
 == Debugging
 


=====================================
darshan-runtime/lib/darshan-core.c
=====================================
--- a/darshan-runtime/lib/darshan-core.c
+++ b/darshan-runtime/lib/darshan-core.c
@@ -472,7 +472,7 @@ void darshan_core_shutdown()
     {
         if(my_rank == 0)
         {
-            fprintf(stderr, "darshan library warning: unable to open log file %s\n",
+            fprintf(stderr, "darshan library warning: unable to create log file %s\n",
                 logfile_name);
         }
         free(logfile_name);


=====================================
darshan-runtime/lib/darshan-dxt.c
=====================================
--- a/darshan-runtime/lib/darshan-dxt.c
+++ b/darshan-runtime/lib/darshan-dxt.c
@@ -410,7 +410,7 @@ static void dxt_posix_runtime_initialize()
     memset(dxt_posix_runtime, 0, sizeof(*dxt_posix_runtime));
 
     /* set the memory quota for DXT, if it has not been initialized */
-    envstr = getenv("ENABLE_DXT_IO_TRACE_MEM");
+    envstr = getenv("DXT_ENABLE_IO_TRACE");
     if(envstr && dxt_mpiio_runtime == NULL)
     {
         ret = sscanf(envstr, "%lf", &tmpfloat);
@@ -463,7 +463,7 @@ void dxt_mpiio_runtime_initialize()
     memset(dxt_mpiio_runtime, 0, sizeof(*dxt_mpiio_runtime));
 
     /* set the memory quota for DXT, if it has not been initialized */
-    envstr = getenv("ENABLE_DXT_IO_TRACE_MEM");
+    envstr = getenv("DXT_ENABLE_IO_TRACE");
     if(envstr && dxt_posix_runtime == NULL)
     {
         ret = sscanf(envstr, "%lf", &tmpfloat);


=====================================
darshan-runtime/lib/darshan-mpiio.c
=====================================
--- a/darshan-runtime/lib/darshan-mpiio.c
+++ b/darshan-runtime/lib/darshan-mpiio.c
@@ -862,7 +862,7 @@ static void mpiio_runtime_initialize()
     memset(mpiio_runtime, 0, sizeof(*mpiio_runtime));
 
     /* check if DXT (Darshan extended tracing) should be enabled */
-    if (getenv("ENABLE_DXT_IO_TRACE_MEM")) {
+    if (getenv("DXT_ENABLE_IO_TRACE")) {
         enable_dxt_io_trace = 1;
     }
 


=====================================
darshan-runtime/lib/darshan-posix.c
=====================================
--- a/darshan-runtime/lib/darshan-posix.c
+++ b/darshan-runtime/lib/darshan-posix.c
@@ -1291,7 +1291,7 @@ static void posix_runtime_initialize()
     memset(posix_runtime, 0, sizeof(*posix_runtime));
 
     /* check if DXT (Darshan extended tracing) should be enabled */
-    if (getenv("ENABLE_DXT_IO_TRACE_MEM")) {
+    if (getenv("DXT_ENABLE_IO_TRACE")) {
         enable_dxt_io_trace = 1;
     }
 


=====================================
darshan-util/doc/darshan-util.txt
=====================================
--- a/darshan-util/doc/darshan-util.txt
+++ b/darshan-util/doc/darshan-util.txt
@@ -587,6 +587,106 @@ The `--file-list-detailed` is the same as --file-list except that it
 produces many columns of output containing statistics broken down by file.
 This option is mainly useful for more detailed automated analysis.
 
+=== darshan-dxt-parser
+
+The `darshan-dxt-parser` utility can be used to parse DxT traces out of Darshan
+log files, assuming the corresponding application was executed with the DxT
+modules enabled. The following example parses all DxT trace information out
+of a Darshan log file and stores it in a text file:
+
+----
+darshan-dxt-parser shane_ior_id25016_1-31-38066-13864742673678115131_1.darshan > ~/ior-trace.txt
+----
+
+=== Guide to darshan-dxt-parser output
+
+The preamble to `darshan-dxt-parser` output is identical to that of the traditional
+`darshan-parser` utility, which is described above.
+
+`darshan-dxt-parser` displays detailed trace information contained within a Darshan log
+that was generated with DxT instrumentation enabled. Trace data is captured from both
+POSIX and MPI-IO interfaces. Example output is given below:
+
+.Example output
+----
+# ***************************************************
+# DXT_POSIX module data
+# ***************************************************
+
+# DXT, file_id: 16457598720760448348, file_name: /tmp/test/testFile
+# DXT, rank: 0, hostname: shane-thinkpad
+# DXT, write_count: 4, read_count: 4
+# DXT, mnt_pt: /, fs_type: ext4
+# Module    Rank  Wt/Rd  Segment          Offset       Length    Start(s)      End(s)
+ X_POSIX       0  write        0               0       262144      0.0029      0.0032
+ X_POSIX       0  write        1          262144       262144      0.0032      0.0035
+ X_POSIX       0  write        2          524288       262144      0.0035      0.0038
+ X_POSIX       0  write        3          786432       262144      0.0038      0.0040
+ X_POSIX       0   read        0               0       262144      0.0048      0.0048
+ X_POSIX       0   read        1          262144       262144      0.0049      0.0049
+ X_POSIX       0   read        2          524288       262144      0.0049      0.0050
+ X_POSIX       0   read        3          786432       262144      0.0050      0.0051
+
+# ***************************************************
+# DXT_MPIIO module data
+# ***************************************************
+
+# DXT, file_id: 16457598720760448348, file_name: /tmp/test/testFile
+# DXT, rank: 0, hostname: shane-thinkpad
+# DXT, write_count: 4, read_count: 4
+# DXT, mnt_pt: /, fs_type: ext4
+# Module    Rank  Wt/Rd  Segment       Length    Start(s)      End(s)
+ X_MPIIO       0  write        0       262144      0.0029      0.0032
+ X_MPIIO       0  write        1       262144      0.0032      0.0035
+ X_MPIIO       0  write        2       262144      0.0035      0.0038
+ X_MPIIO       0  write        3       262144      0.0038      0.0040
+ X_MPIIO       0   read        0       262144      0.0048      0.0049
+ X_MPIIO       0   read        1       262144      0.0049      0.0049
+ X_MPIIO       0   read        2       262144      0.0049      0.0050
+ X_MPIIO       0   read        3       262144      0.0050      0.0051
+----
+
+===== DxT POSIX module
+
+This module provides details on each read or write access at the POSIX layer.
+The trace output is organized first by file then by process rank. So, for each
+file accessed by the application, DxT will provide each process's I/O trace
+segments in separate blocks, ordered by increasing process rank. Within each
+file/rank block, I/O trace segments are ordered chronologically.
+
+Before providing details on each I/O operation, DxT provides a short preamble
+for each file/rank trace block with the following bits of information: the Darshan
+identifier for the file (which is equivalent to the identifers used by Darshan in its
+traditional modules), the full file path, the corresponding MPI rank the current
+block of trace data belongs to, the hostname associated with this process rank, the
+number of individual POSIX read and write operations by this process, and the mount
+point and file system type corresponding to the traced file.
+
+The output format for each indvidual I/O operation segment is:
+
+----
+# Module    Rank  Wt/Rd  Segment          Offset       Length    Start(s)      End(s)
+----
+
+* Module: corresponding DxT module (DXT_POSIX or DXT_MPIIO)
+* Rank: process rank responsible for I/O operation
+* Wt/Rd: whether the operation was a write or read
+* Segment: The operation number for this segment (first operation is segment 0)
+* Offset: file offset the I/O operation occured at
+* Length: length of the I/O operation in bytes
+* Start: timestamp of the start of the operation (w.r.t. application start time)
+* End: timestamp of the end of the operation (w.r.t. application start time)
+
+===== DxT MPI-IO module
+
+If the MPI-IO interface is used by an application, this module provides details on
+each read or write access at the MPI-IO layer. This data is often useful in
+understanding how MPI-IO read or write operations map to underlying POSIX read
+or write operations issued to the traced file.
+
+The output format for the DxT MPI-IO module is essentially identical to the DxT
+POSIX module, except that the offset of file operations is not tracked.
+
 === Other darshan-util utilities
 
 The darshan-util package includes a number of other utilies that can be



View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/compare/03053837489f018ca58b231f9099f82a12bd5b79...6dd6e0ab9893467bea51f8393bc39361c3932036
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/darshan-commits/attachments/20170131/a95808c1/attachment-0001.html>


More information about the Darshan-commits mailing list