[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