[Darshan-commits] [Git][darshan/darshan][issue-223-mmap-hugepages] 6 commits: update runtime docs with dxt info

Philip Carns xgitlab at cels.anl.gov
Fri Feb 3 14:33:50 CST 2017


Philip Carns pushed to branch issue-223-mmap-hugepages at darshan / darshan


Commits:
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

- - - - -
cdce70c9 by Shane Snyder at 2017-01-31T12:10:08-06:00
updated ChangeLog for all 3.1.3-pre contributions

- - - - -
f8cfb07e by Shane Snyder at 2017-01-31T12:12:11-06:00
bump up configure version numbers

- - - - -


11 changed files:

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


Changes:

=====================================
ChangeLog
=====================================
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,16 @@ Darshan Release Change Log
 
 Darshan-3.1.3-pre1
 =============
+* add new DxT instrumentation modules to provide fine-grained read/write
+  operation tracing at both the POSIX and MPI-IO layers
+    - this functionality should be enabled at runtime by exporting the
+      DXT_ENABLE_IO_TRACE environment variable
+    - trace output is stored within Darshan's traditional log file format
+    - a corresponding trace parser (darshan-dxt-parser) is offered within
+      darshan-util to allow the DxT trace modules to be parsed and displayed
+    - this software was contributed by Cong Xu and Intel's HPDD division.a
+* add logic to allow Darshan to capture command line arguments from Fortran
+  applications (contributed by Cristian Simarro)
 * skip instrumentation attempts for anonymous mmap() calls; this avoids a
   potentential deadlock condition when used with hugepages on Cray systems.
   Reported by Glenn Lockwood and Cristian Simarro.
@@ -15,6 +25,10 @@ Darshan-3.1.3-pre1
   vary the wrapper prototypes to match the corresponding HDF5 library ABI.
   The initial patch for HDF5 1.10 compatibility was contributed by 
   Karl-Ulrich Bamberg.
+* modified Darshan's path exclusion logic to include a whitelist to prevent
+  I/O to/from Cray's Datawarp service from being filtered out (it is located
+  within the /var directory, which historically has been excluded). Reported
+  by Glenn Lockwood.
 
 Darshan-3.1.2
 =============


=====================================
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/configure
=====================================
--- a/darshan-runtime/configure
+++ b/darshan-runtime/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for darshan-runtime 3.1.2.
+# Generated by GNU Autoconf 2.69 for darshan-runtime 3.1.3-pre1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='darshan-runtime'
 PACKAGE_TARNAME='darshan-runtime'
-PACKAGE_VERSION='3.1.2'
-PACKAGE_STRING='darshan-runtime 3.1.2'
+PACKAGE_VERSION='3.1.3-pre1'
+PACKAGE_STRING='darshan-runtime 3.1.3-pre1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1263,7 +1263,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures darshan-runtime 3.1.2 to adapt to many kinds of systems.
+\`configure' configures darshan-runtime 3.1.3-pre1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1325,7 +1325,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of darshan-runtime 3.1.2:";;
+     short | recursive ) echo "Configuration of darshan-runtime 3.1.3-pre1:";;
    esac
   cat <<\_ACEOF
 
@@ -1439,7 +1439,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-darshan-runtime configure 3.1.2
+darshan-runtime configure 3.1.3-pre1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1791,7 +1791,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by darshan-runtime $as_me 3.1.2, which was
+It was created by darshan-runtime $as_me 3.1.3-pre1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4400,7 +4400,7 @@ else
   MPICH_LIB_OLD=0
 fi
 
-DARSHAN_VERSION="3.1.2"
+DARSHAN_VERSION="3.1.3-pre1"
 
 
 
@@ -4922,7 +4922,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by darshan-runtime $as_me 3.1.2, which was
+This file was extended by darshan-runtime $as_me 3.1.3-pre1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4984,7 +4984,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-darshan-runtime config.status 3.1.2
+darshan-runtime config.status 3.1.3-pre1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 


=====================================
darshan-runtime/configure.in
=====================================
--- a/darshan-runtime/configure.in
+++ b/darshan-runtime/configure.in
@@ -5,7 +5,7 @@ dnl Process this file with autoconf to produce a configure script.
 dnl You may need to use autoheader as well if changing any DEFINEs
 
 dnl sanity checks, output header, location of scripts used here
-AC_INIT([darshan-runtime], [3.1.2])
+AC_INIT([darshan-runtime], [3.1.3-pre1])
 AC_CONFIG_SRCDIR([darshan.h])
 AC_CONFIG_AUX_DIR(../maint/config)
 AC_CONFIG_HEADER(darshan-runtime-config.h)


=====================================
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-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/configure
=====================================
--- a/darshan-util/configure
+++ b/darshan-util/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for darshan-util 3.1.2.
+# Generated by GNU Autoconf 2.69 for darshan-util 3.1.3-pre1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='darshan-util'
 PACKAGE_TARNAME='darshan-util'
-PACKAGE_VERSION='3.1.2'
-PACKAGE_STRING='darshan-util 3.1.2'
+PACKAGE_VERSION='3.1.3-pre1'
+PACKAGE_STRING='darshan-util 3.1.3-pre1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1247,7 +1247,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures darshan-util 3.1.2 to adapt to many kinds of systems.
+\`configure' configures darshan-util 3.1.3-pre1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1309,7 +1309,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of darshan-util 3.1.2:";;
+     short | recursive ) echo "Configuration of darshan-util 3.1.3-pre1:";;
    esac
   cat <<\_ACEOF
 
@@ -1405,7 +1405,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-darshan-util configure 3.1.2
+darshan-util configure 3.1.3-pre1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1770,7 +1770,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by darshan-util $as_me 3.1.2, which was
+It was created by darshan-util $as_me 3.1.3-pre1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4117,7 +4117,7 @@ fi
 done
 
 
-DARSHAN_UTIL_VERSION="3.1.2"
+DARSHAN_UTIL_VERSION="3.1.3-pre1"
 
 
 
@@ -4633,7 +4633,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by darshan-util $as_me 3.1.2, which was
+This file was extended by darshan-util $as_me 3.1.3-pre1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4695,7 +4695,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-darshan-util config.status 3.1.2
+darshan-util config.status 3.1.3-pre1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 


=====================================
darshan-util/configure.in
=====================================
--- a/darshan-util/configure.in
+++ b/darshan-util/configure.in
@@ -5,7 +5,7 @@ dnl Process this file with autoconf to produce a configure script.
 dnl You may need to use autoheader as well if changing any DEFINEs
 
 dnl sanity checks, output header, location of scripts used here
-AC_INIT([darshan-util], [3.1.2])
+AC_INIT([darshan-util], [3.1.3-pre1])
 AC_CONFIG_SRCDIR([darshan-logutils.h])
 AC_CONFIG_AUX_DIR(../maint/config)
 AC_CONFIG_HEADER(darshan-util-config.h)


=====================================
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/8857f5ff2755b3cc1ec15a0bd2c55b30a492ed60...f8cfb07e7874fe885d05122eb1127e38ca41b08a
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/darshan-commits/attachments/20170203/96088ea8/attachment-0001.html>


More information about the Darshan-commits mailing list