[Darshan-commits] [Git][darshan/darshan][master] 5 commits: update ChangeLog for 3.1.8

Shane Snyder xgitlab at cels.anl.gov
Wed Nov 6 20:25:51 CST 2019



Shane Snyder pushed to branch master at darshan / darshan


Commits:
e535dd27 by Shane Snyder at 2019-11-06T19:17:56Z
update ChangeLog for 3.1.8

- - - - -
b7a8f339 by Shane Snyder at 2019-11-06T20:14:28Z
tweak dxt trigger file env. var. name

- - - - -
3b87ff57 by Shane Snyder at 2019-11-06T22:46:32Z
update runtime docs to explain trace triggers

- - - - -
a60cfe5d by Shane Snyder at 2019-11-06T23:02:14Z
update lib versions in configure scripts

- - - - -
125721c9 by Shane Snyder at 2019-11-07T02:25:01Z
example x86_64 output for 3.1.8

- - - - -


8 changed files:

- ChangeLog
- darshan-runtime/configure
- darshan-runtime/configure.in
- darshan-runtime/doc/darshan-runtime.txt
- darshan-runtime/lib/darshan-core.c
- + darshan-test/example-output/mpi-io-test-x86_64-3.1.8.darshan
- darshan-util/configure
- darshan-util/configure.in


Changes:

=====================================
ChangeLog
=====================================
@@ -2,6 +2,12 @@
 Darshan Release Change Log
 --------------------------
 
+Darshan-3.1.7
+=============
+* added dynamic trace triggering functionality, allowing Darshan to
+  decide at runtime whether or not to trace specific files with DXT,
+  with this decision based on triggers in a user-provided config file
+
 Darshan-3.1.7
 =============
 * bug fix for handling DXT data in darshan-convert utility. Bug reported


=====================================
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.7.
+# Generated by GNU Autoconf 2.69 for darshan-runtime 3.1.8.
 #
 #
 # 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.7'
-PACKAGE_STRING='darshan-runtime 3.1.7'
+PACKAGE_VERSION='3.1.8'
+PACKAGE_STRING='darshan-runtime 3.1.8'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1266,7 +1266,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.7 to adapt to many kinds of systems.
+\`configure' configures darshan-runtime 3.1.8 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1328,7 +1328,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of darshan-runtime 3.1.7:";;
+     short | recursive ) echo "Configuration of darshan-runtime 3.1.8:";;
    esac
   cat <<\_ACEOF
 
@@ -1443,7 +1443,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-darshan-runtime configure 3.1.7
+darshan-runtime configure 3.1.8
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1795,7 +1795,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.7, which was
+It was created by darshan-runtime $as_me 3.1.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4432,7 +4432,7 @@ else
   MPICH_LIB_OLD=0
 fi
 
-DARSHAN_VERSION="3.1.7"
+DARSHAN_VERSION="3.1.8"
 
 
 
@@ -4956,7 +4956,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.7, which was
+This file was extended by darshan-runtime $as_me 3.1.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5018,7 +5018,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.7
+darshan-runtime config.status 3.1.8
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 


=====================================
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.7])
+AC_INIT([darshan-runtime], [3.1.8])
 AC_CONFIG_SRCDIR([darshan.h])
 AC_CONFIG_AUX_DIR(../maint/config)
 AC_CONFIG_HEADER(darshan-runtime-config.h)


=====================================
darshan-runtime/doc/darshan-runtime.txt
=====================================
@@ -67,7 +67,7 @@ scheduler does not advertise the job ID) then you can specify `NONE` here.
 Darshan will fall back to using the pid of the rank 0 process if the
 specified environment variable is not set.
 * `--with-log-path=` (this, or `--with-log-path-by-env`, is mandatory): This
-specifies the parent directory for the directory tree where darshan logs
+specifies the parent directory for the directory tree where Darshan logs
 will be placed.
 * `--with-log-path-by-env=`: specifies an environment variable to use to
 determine the log path at run time.
@@ -83,7 +83,7 @@ header and library.
 * `--disable-ld-preload`: disables building of the Darshan LD_PRELOAD library
 * `--disable-bgq-mod`: disables building of the BG/Q module (default checks
 and only builds if BG/Q environment detected).
-* `--enable-group-readable-logs`: sets darshan log file permissions to allow
+* `--enable-group-readable-logs`: sets Darshan log file permissions to allow
 group read access.
 * `--enable-HDF5-pre-1.10`: enables the Darshan HDF5 instrumentation module,
 with support for HDF5 versions prior to 1.10
@@ -128,7 +128,7 @@ darshan-mk-log-dirs.pl
 .A note about log directory permissions
 [NOTE]
 ====
-All log files written by darshan have permissions set to only allow
+All log files written by Darshan have permissions set to only allow
 read access by the owner of the file.  You can modify this behavior,
 however, by specifying the --enable-group-readable-logs option at
 configure time.  One notable deployment scenario would be to configure
@@ -164,7 +164,7 @@ MPI compiler script (e.g. `mpicc`) that includes the link options and
 libraries needed by Darshan, or to use existing profiling configuration
 hooks for existing MPI compiler scripts.  Once this is done, Darshan
 instrumentation is transparent; you simply compile applications using
-the darshan-enabled MPI compiler scripts.
+the Darshan-enabled MPI compiler scripts.
 
 === Using a profile configuration 
 
@@ -226,7 +226,7 @@ list for help.
 
 == Instrumenting dynamically-linked applications
 
-For dynamically-linked executables, darshan relies on the `LD_PRELOAD`
+For dynamically-linked executables, Darshan relies on the `LD_PRELOAD`
 environment variable to insert instrumentation at run time.  The executables
 should be compiled using the normal, unmodified MPI compiler.
 
@@ -283,11 +283,61 @@ The full path to the libfmpich.so library can be omitted if the rpath
 variable points to the correct path.  Be careful to check the rpath of the
 darshan library and the executable before using this configuration, however.
 They may provide conflicting paths.  Ideally the rpath to the  MPI library
-would *not* be set by the darshan library, but would instead be specified
+would *not* be set by the Darshan library, but would instead be specified
 exclusively by the executable itself.  You can check the rpath of the
 darshan library by running `objdump -x
 /home/carns/darshan-install/lib/libdarshan.so |grep RPATH`.
 
+== Using the Darshan eXtended Tracing (DXT) module
+
+DXT support is disabled by default in Darshan, requiring the user to either explicitly
+enable tracing for all files or to provide a trace trigger configuration file describing
+which files should be traced at runtime.
+
+To enable tracing globally for all files, Darshan users simply need to set the
+DXT_ENABLE_IO_TRACE environment variable as follows:
+
+----
+export DXT_ENABLE_IO_TRACE=1
+----
+
+To enable tracing for particular files, DXT additionally offers a trace
+triggering mechansim, with users specifying triggers used to decide whether or
+not to trace a particular file at runtime. Files that do not match any trace
+trigger will not store trace data in the Darshan log. Currently, DXT supports
+the following types of trace triggers:
+
+* file triggers: trace files based on regex matching of file paths
+* rank triggers: trace files based on regex matching of ranks
+* dynamic triggers: trace files based on runtime analysis of I/O characteristics (e.g., frequent small or unaligned I/O accesses)
+
+Users simply need to specify one or more of these triggers in a text file that is passed
+to DXT at runtime -- when multiple triggers are specified, DXT will keep any file traces
+that match at least one trigger (i.e., the trace decision is a logical OR accross given triggers).
+An example configuration file is given below, illustrating the syntax to use for currently
+supported triggers:
+
+----
+FILE .h5$           # trace all files with a '.h5' extension
+FILE ^/tmp          # trace all files with a path prefix of '/tmp'
+RANK [1-2]          # trace all files accessed by ranks 1-2
+SMALL_IO .5         # trace all files with greater than 50% small (less than 10 KB) accesses
+UNALIGNED_IO .5     # trace all files with greater than 50% unaligned accesses
+----
+
+FILE and RANK triggers take a single parameter representing the regex that will be compared
+to the file name and the rank accessing it, respectively. Regex support is provided by the
+POSIX `regex.h` interface -- refer to the https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/regex.h.html[manpage] for more details on regex syntax.
+SMALL_IO and UNALIGNED_IO triggers take a single parameter representing the lower
+threshold percentage of accesses of the given type.
+
+Set the DXT_TRIGGER_CONF_PATH environment variable to notify DXT of the path of the
+configuration file:
+
+----
+export DXT_TRIGGER_CONF_PATH=/path/to/dxt/config/file
+----
+
 == Darshan installation recipes
 
 The following recipes provide examples for prominent HPC systems.
@@ -556,7 +606,9 @@ behavior at runtime:
 * 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`).
 * DARSHAN_EXCLUDE_DIRS: specifies a list of comma-separated paths that Darshan will not instrument at runtime (in addition to Darshan's default blacklist)
-* 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.
+* DXT_ENABLE_IO_TRACE: setting this environment variable enables the DXT (Darshan eXtended Tracing) modules at runtime for all files instrumented by Darshan. Currently, DXT is hard-coded to use a maximum of 4 MiB of trace memory per process (in addition to memory used by other modules).
+* DXT_DISABLE_IO_TRACE: setting this environment variable disables the DXT module at runtime for all files instrumented by Darshan.
+* DXT_TRIGGER_CONF_PATH: File path to a DXT trace trigger configuration file, which specifies triggers used by DXT to decide which files to trace at runtime. Note that the trace triggering mechanism is overridden by the DXT_ENABLE_IO_TRACE and DXT_DISABLE_IO_TRACE environment variables.
 
 == Debugging
 


=====================================
darshan-runtime/lib/darshan-core.c
=====================================
@@ -310,7 +310,7 @@ void darshan_core_initialize(int argc, char **argv)
             darshan_get_exe_and_mounts(init_core, argc, argv);
 
             /* determine if/when DXT should be enabled by looking for triggers */
-            char *trigger_conf = getenv("DARSHAN_DXT_TRIGGER_CONF_PATH");
+            char *trigger_conf = getenv("DXT_TRIGGER_CONF_PATH");
             if(trigger_conf)
             {
                 dxt_load_trigger_conf(trigger_conf);


=====================================
darshan-test/example-output/mpi-io-test-x86_64-3.1.8.darshan
=====================================
Binary files /dev/null and b/darshan-test/example-output/mpi-io-test-x86_64-3.1.8.darshan differ


=====================================
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.7.
+# Generated by GNU Autoconf 2.69 for darshan-util 3.1.8.
 #
 #
 # 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.7'
-PACKAGE_STRING='darshan-util 3.1.7'
+PACKAGE_VERSION='3.1.8'
+PACKAGE_STRING='darshan-util 3.1.8'
 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.7 to adapt to many kinds of systems.
+\`configure' configures darshan-util 3.1.8 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.7:";;
+     short | recursive ) echo "Configuration of darshan-util 3.1.8:";;
    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.7
+darshan-util configure 3.1.8
 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.7, which was
+It was created by darshan-util $as_me 3.1.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4117,7 +4117,7 @@ fi
 done
 
 
-DARSHAN_UTIL_VERSION="3.1.7"
+DARSHAN_UTIL_VERSION="3.1.8"
 
 
 
@@ -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.7, which was
+This file was extended by darshan-util $as_me 3.1.8, 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.7
+darshan-util config.status 3.1.8
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 


=====================================
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.7])
+AC_INIT([darshan-util], [3.1.8])
 AC_CONFIG_SRCDIR([darshan-logutils.h])
 AC_CONFIG_AUX_DIR(../maint/config)
 AC_CONFIG_HEADER(darshan-util-config.h)



View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/compare/1383589c2cb32f2f65dfbde2f9b50c76941c1a6a...125721c983c68b63e7534534da6f2b6b1bc24001

-- 
View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/compare/1383589c2cb32f2f65dfbde2f9b50c76941c1a6a...125721c983c68b63e7534534da6f2b6b1bc24001
You're receiving this email because of your account on xgitlab.cels.anl.gov.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/darshan-commits/attachments/20191106/3f3c66ae/attachment-0001.html>


More information about the Darshan-commits mailing list