[Darshan-commits] [Darshan] branch, dev-modular, updated. darshan-2.3.1-169-gfc94307

Service Account git at mcs.anl.gov
Fri Sep 4 14:56:23 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".

The branch, dev-modular has been updated
       via  fc94307057726297593d0a5af8e5c4c8ebfc50f6 (commit)
      from  ac26379597807cf610c81a3945388d7f746f4c80 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit fc94307057726297593d0a5af8e5c4c8ebfc50f6
Author: Shane Snyder <ssnyder at mcs.anl.gov>
Date:   Fri Sep 4 14:55:56 2015 -0500

    final tweaks for darshan-job-summary graphs

-----------------------------------------------------------------------

Summary of changes:
 .../bin/darshan-job-summary.pl.in                  |  425 ++++++++++----------
 darshan-util/darshan-job-summary/share/summary.tex |   22 +-
 darshan-util/darshan-job-summary/share/title.tex   |    2 +
 3 files changed, 224 insertions(+), 225 deletions(-)


Diff of changes:
diff --git a/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in b/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
index 0b11851..4fcb1c6 100755
--- a/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
+++ b/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
@@ -78,10 +78,7 @@ my $cumul_meta_shared = 0;
 my $cumul_meta_indep = 0;
 
 my $first_data_line = 1;
-my $current_rank = 0;
-my $current_hash = 0;
 my %file_record_hash = ();
-
 my %fs_data = ();
 
 while($line = <PARSE_OUT>)
@@ -133,33 +130,23 @@ while($line = <PARSE_OUT>)
         @fields = split(/[\t ]+/, $line);
 
         # encode the file system name to protect against special characters
-        $fields[5] = encode('latex', $fields[5]);
+        $fields[6] = encode('latex', $fields[6]);
 
         # is this our first piece of data?
         if($first_data_line)
         {
-            $current_rank = $fields[1];
-            $current_hash = $fields[2];
             $first_data_line = 0;
         }
 
         # is this a new file record?
-        if($fields[1] != $current_rank || $fields[2] != $current_hash)
+        if (!defined $file_record_hash{$fields[2]})
         {
-            # process previous record (if posix or mpiio record)
-            if ($fields[0] eq "POSIX" || $fields[0] eq "MPIIO")
-            {
-                process_file_record($current_rank, $current_hash, \%file_record_hash);
-            }
-
-            # reset variables for next record 
-            $current_rank = $fields[1];
-            $current_hash = $fields[2];
-            %file_record_hash = ();
-            $file_record_hash{FILE_NAME} = $fields[5];
+            $file_record_hash{$fields[2]} = ();
+            $file_record_hash{$fields[2]}{FILE_NAME} = $fields[5];
+            $file_record_hash{$fields[2]}{RANK} = $fields[1];
         }
 
-        $file_record_hash{$fields[3]} = $fields[4];
+        $file_record_hash{$fields[2]}{$fields[3]} = $fields[4];
         $summary{$fields[3]} += $fields[4];
 
         # accumulate independent and shared data as well as fs data
@@ -332,11 +319,9 @@ if ($first_data_line)
     exit(1);
 }
 
-# process last file record
-$file_record_hash{FILE_NAME} = $fields[5];
-if ($fields[0] eq "POSIX" || $fields[0] eq "MPIIO")
+foreach $key (keys %file_record_hash)
 {
-    process_file_record($current_rank, $current_hash, \%file_record_hash);
+    process_file_record($key, \%{$file_record_hash{$key}});
 }
 
 # copy template files to tmp tmp_dir
@@ -477,6 +462,7 @@ close PATTERN;
 # table of common access sizes
 open(ACCESS_TABLE, ">$tmp_dir/access-table.tex") || die("error opening output file:$!\n");
 print ACCESS_TABLE "
+\\begin{threeparttable}
 \\begin{tabular}{r|r|r}
 \\multicolumn{3}{c}{ } \\\\
 \\multicolumn{3}{c}{Most Common Access Sizes} \\\\
@@ -546,7 +532,7 @@ if ($tmp_access_count > 0)
         if ($i == 0) {
             print ACCESS_TABLE "
             \\hline
-            \\multirow{$tmp_access_count}{*}{MPI-IO \\textdagger} \& $value \& $mpiio_access_hash{$value} \\\\\n
+            \\multirow{$tmp_access_count}{*}{MPI-IO \\textbf{\\ddag}} \& $value \& $mpiio_access_hash{$value} \\\\\n
             ";
         }
         else {
@@ -562,197 +548,202 @@ print ACCESS_TABLE "
 \\hline
 \\end{tabular}
 ";
+if ($tmp_access_count > 0)
+{
+    print ACCESS_TABLE "
+    \\begin{tablenotes}
+    \\item[\\normalsize \\textbf{\\ddag}] \\scriptsize NOTE: MPI-IO accesses are given in terms of aggregate datatype size.
+    \\end{tablenotes}
+    ";
+}
+print ACCESS_TABLE "
+\\end{threeparttable}
+";
 close ACCESS_TABLE;
 
 # file count table
-#open(TABLES, ">$tmp_dir/file-count-table.tex") || die("error opening output file:$!\n");
-#print TABLES "
-#\\begin{tabular}{r|r|r|r}
-#\\multicolumn{4}{c}{ } \\\\
-#\\multicolumn{4}{c}{File Count Summary} \\\\
-#";
-#if($size_est_flag == 1)
-#{
-#print TABLES "
-#\\multicolumn{4}{c}{(estimated by I/O access offsets)} \\\\
-#";
-#}
-#print TABLES "
-#\\hline
-#type \& number of files \& avg. size \& max size \\\\
-#\\hline
-#\\hline
-#";
-#my $counter;
-#my $sum;
-#my $max;
-#my $key;
-#my $avg;
-#
-#$counter = 0;
-#$sum = 0;
-#$max = 0;
-#foreach $key (keys %hash_files) {
-#    $counter++;
-#    if($hash_files{$key}{'min_open_size'} >
-#        $hash_files{$key}{'max_size'})
-#    {
-#        $sum += $hash_files{$key}{'min_open_size'};
-#        if($hash_files{$key}{'min_open_size'} > $max)
-#        {
-#            $max = $hash_files{$key}{'min_open_size'};
-#        }
-#    }
-#    else
-#    {
-#        $sum += $hash_files{$key}{'max_size'};
-#        if($hash_files{$key}{'max_size'} > $max)
-#        {
-#            $max = $hash_files{$key}{'max_size'};
-#        }
-#    }
-#}
-#if($counter > 0) { $avg = $sum / $counter; }
-#else { $avg = 0; }
-#$avg = format_bytes($avg);
-#$max = format_bytes($max);
-#print TABLES "total opened \& $counter \& $avg \& $max \\\\\n";
-#
-#$counter = 0;
-#$sum = 0;
-#$max = 0;
-#foreach $key (keys %hash_files) {
-#    if($hash_files{$key}{'was_read'} && !($hash_files{$key}{'was_written'}))
-#    {
-#        $counter++;
-#        if($hash_files{$key}{'min_open_size'} >
-#            $hash_files{$key}{'max_size'})
-#        {
-#            $sum += $hash_files{$key}{'min_open_size'};
-#            if($hash_files{$key}{'min_open_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'min_open_size'};
-#            }
-#        }
-#        else
-#        {
-#            $sum += $hash_files{$key}{'max_size'};
-#            if($hash_files{$key}{'max_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'max_size'};
-#            }
-#        }
-#    }
-#}
-#if($counter > 0) { $avg = $sum / $counter; }
-#else { $avg = 0; }
-#$avg = format_bytes($avg);
-#$max = format_bytes($max);
-#print TABLES "read-only files \& $counter \& $avg \& $max \\\\\n";
-#
-#$counter = 0;
-#$sum = 0;
-#$max = 0;
-#foreach $key (keys %hash_files) {
-#    if(!($hash_files{$key}{'was_read'}) && $hash_files{$key}{'was_written'})
-#    {
-#        $counter++;
-#        if($hash_files{$key}{'min_open_size'} >
-#            $hash_files{$key}{'max_size'})
-#        {
-#            $sum += $hash_files{$key}{'min_open_size'};
-#            if($hash_files{$key}{'min_open_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'min_open_size'};
-#            }
-#        }
-#        else
-#        {
-#            $sum += $hash_files{$key}{'max_size'};
-#            if($hash_files{$key}{'max_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'max_size'};
-#            }
-#        }
-#    }
-#}
-#if($counter > 0) { $avg = $sum / $counter; }
-#else { $avg = 0; }
-#$avg = format_bytes($avg);
-#$max = format_bytes($max);
-#print TABLES "write-only files \& $counter \& $avg \& $max \\\\\n";
-#
-#$counter = 0;
-#$sum = 0;
-#$max = 0;
-#foreach $key (keys %hash_files) {
-#    if($hash_files{$key}{'was_read'} && $hash_files{$key}{'was_written'})
-#    {
-#        $counter++;
-#        if($hash_files{$key}{'min_open_size'} >
-#            $hash_files{$key}{'max_size'})
-#        {
-#            $sum += $hash_files{$key}{'min_open_size'};
-#            if($hash_files{$key}{'min_open_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'min_open_size'};
-#            }
-#        }
-#        else
-#        {
-#            $sum += $hash_files{$key}{'max_size'};
-#            if($hash_files{$key}{'max_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'max_size'};
-#            }
-#        }
-#    }
-#}
-#if($counter > 0) { $avg = $sum / $counter; }
-#else { $avg = 0; }
-#$avg = format_bytes($avg);
-#$max = format_bytes($max);
-#print TABLES "read/write files \& $counter \& $avg \& $max \\\\\n";
-#
-#$counter = 0;
-#$sum = 0;
-#$max = 0;
-#foreach $key (keys %hash_files) {
-#    if($hash_files{$key}{'was_written'} &&
-#        $hash_files{$key}{'min_open_size'} == 0 &&
-#        $hash_files{$key}{'max_size'} > 0)
-#    {
-#        $counter++;
-#        if($hash_files{$key}{'min_open_size'} >
-#            $hash_files{$key}{'max_size'})
-#        {
-#            $sum += $hash_files{$key}{'min_open_size'};
-#            if($hash_files{$key}{'min_open_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'min_open_size'};
-#            }
-#        }
-#        else
-#        {
-#            $sum += $hash_files{$key}{'max_size'};
-#            if($hash_files{$key}{'max_size'} > $max)
-#            {
-#                $max = $hash_files{$key}{'max_size'};
-#            }
-#        }
-#    }
-#}
-#if($counter > 0) { $avg = $sum / $counter; }
-#else { $avg = 0; }
-#$avg = format_bytes($avg);
-#$max = format_bytes($max);
-#print TABLES "created files \& $counter \& $avg \& $max \\\\\n";
-#
-#print TABLES "
-#\\hline
-#\\end{tabular}
-#";
-#close(TABLES);
+open(FILE_CNT_TABLE, ">$tmp_dir/file-count-table.tex") || die("error opening output file:$!\n");
+print FILE_CNT_TABLE "
+\\begin{tabular}{r|r|r|r}
+\\multicolumn{4}{c}{ } \\\\
+\\multicolumn{4}{c}{File Count Summary} \\\\
+\\multicolumn{4}{c}{(estimated by I/O access offsets)} \\\\
+\\hline
+type \& number of files \& avg. size \& max size \\\\
+\\hline
+\\hline
+";
+
+my $counter;
+my $sum;
+my $max;
+my $key;
+my $avg;
+
+$counter = 0;
+$sum = 0;
+$max = 0;
+foreach $key (keys %hash_files) {
+    $counter++;
+    if($hash_files{$key}{'min_open_size'} >
+        $hash_files{$key}{'max_size'})
+    {
+        $sum += $hash_files{$key}{'min_open_size'};
+        if($hash_files{$key}{'min_open_size'} > $max)
+        {
+            $max = $hash_files{$key}{'min_open_size'};
+        }
+    }
+    else
+    {
+        $sum += $hash_files{$key}{'max_size'};
+        if($hash_files{$key}{'max_size'} > $max)
+        {
+            $max = $hash_files{$key}{'max_size'};
+        }
+    }
+}
+if($counter > 0) { $avg = $sum / $counter; }
+else { $avg = 0; }
+$avg = format_bytes($avg);
+$max = format_bytes($max);
+print FILE_CNT_TABLE "total opened \& $counter \& $avg \& $max \\\\\n";
+
+$counter = 0;
+$sum = 0;
+$max = 0;
+foreach $key (keys %hash_files) {
+    if($hash_files{$key}{'was_read'} && !($hash_files{$key}{'was_written'}))
+    {
+        $counter++;
+        if($hash_files{$key}{'min_open_size'} >
+            $hash_files{$key}{'max_size'})
+        {
+            $sum += $hash_files{$key}{'min_open_size'};
+            if($hash_files{$key}{'min_open_size'} > $max)
+            {
+                $max = $hash_files{$key}{'min_open_size'};
+            }
+        }
+        else
+        {
+            $sum += $hash_files{$key}{'max_size'};
+            if($hash_files{$key}{'max_size'} > $max)
+            {
+                $max = $hash_files{$key}{'max_size'};
+            }
+        }
+    }
+}
+if($counter > 0) { $avg = $sum / $counter; }
+else { $avg = 0; }
+$avg = format_bytes($avg);
+$max = format_bytes($max);
+print FILE_CNT_TABLE "read-only files \& $counter \& $avg \& $max \\\\\n";
+
+$counter = 0;
+$sum = 0;
+$max = 0;
+foreach $key (keys %hash_files) {
+    if(!($hash_files{$key}{'was_read'}) && $hash_files{$key}{'was_written'})
+    {
+        $counter++;
+        if($hash_files{$key}{'min_open_size'} >
+            $hash_files{$key}{'max_size'})
+        {
+            $sum += $hash_files{$key}{'min_open_size'};
+            if($hash_files{$key}{'min_open_size'} > $max)
+            {
+                $max = $hash_files{$key}{'min_open_size'};
+            }
+        }
+        else
+        {
+            $sum += $hash_files{$key}{'max_size'};
+            if($hash_files{$key}{'max_size'} > $max)
+            {
+                $max = $hash_files{$key}{'max_size'};
+            }
+        }
+    }
+}
+if($counter > 0) { $avg = $sum / $counter; }
+else { $avg = 0; }
+$avg = format_bytes($avg);
+$max = format_bytes($max);
+print FILE_CNT_TABLE "write-only files \& $counter \& $avg \& $max \\\\\n";
+
+$counter = 0;
+$sum = 0;
+$max = 0;
+foreach $key (keys %hash_files) {
+    if($hash_files{$key}{'was_read'} && $hash_files{$key}{'was_written'})
+    {
+        $counter++;
+        if($hash_files{$key}{'min_open_size'} >
+            $hash_files{$key}{'max_size'})
+        {
+            $sum += $hash_files{$key}{'min_open_size'};
+            if($hash_files{$key}{'min_open_size'} > $max)
+            {
+                $max = $hash_files{$key}{'min_open_size'};
+            }
+        }
+        else
+        {
+            $sum += $hash_files{$key}{'max_size'};
+            if($hash_files{$key}{'max_size'} > $max)
+            {
+                $max = $hash_files{$key}{'max_size'};
+            }
+        }
+    }
+}
+if($counter > 0) { $avg = $sum / $counter; }
+else { $avg = 0; }
+$avg = format_bytes($avg);
+$max = format_bytes($max);
+print FILE_CNT_TABLE "read/write files \& $counter \& $avg \& $max \\\\\n";
+
+$counter = 0;
+$sum = 0;
+$max = 0;
+foreach $key (keys %hash_files) {
+    if($hash_files{$key}{'was_written'} &&
+        $hash_files{$key}{'min_open_size'} == 0 &&
+        $hash_files{$key}{'max_size'} > 0)
+    {
+        $counter++;
+        if($hash_files{$key}{'min_open_size'} >
+            $hash_files{$key}{'max_size'})
+        {
+            $sum += $hash_files{$key}{'min_open_size'};
+            if($hash_files{$key}{'min_open_size'} > $max)
+            {
+                $max = $hash_files{$key}{'min_open_size'};
+            }
+        }
+        else
+        {
+            $sum += $hash_files{$key}{'max_size'};
+            if($hash_files{$key}{'max_size'} > $max)
+            {
+                $max = $hash_files{$key}{'max_size'};
+            }
+        }
+    }
+}
+if($counter > 0) { $avg = $sum / $counter; }
+else { $avg = 0; }
+$avg = format_bytes($avg);
+$max = format_bytes($max);
+print FILE_CNT_TABLE "created files \& $counter \& $avg \& $max \\\\\n";
+
+print FILE_CNT_TABLE "
+\\hline
+\\end{tabular}
+";
+close(FILE_CNT_TABLE);
 
 # generate per filesystem data
 open(FS_TABLE, ">$tmp_dir/fs-data-table.tex") || die("error opening output files:$!\n");
@@ -829,7 +820,7 @@ foreach $key (sort { $hash_files{$b}{'slowest_time'} <=> $hash_files{$a}{'slowes
         my $vb = sprintf("%.3g", sqrt($hash_files{$key}{'variance_bytes'}));
         my $fast_bytes = format_bytes($hash_files{$key}{'fastest_bytes'});
         my $slow_bytes = format_bytes($hash_files{$key}{'slowest_bytes'});
-        my $name = encode('latex', $hash_files{$key}{'name'});
+        my $name = encode('latex', "..." . substr($hash_files{$key}{'name'}, -12));
 
         print VAR_TABLE "
                $name \&
@@ -905,7 +896,7 @@ my $cms = $cumul_meta_shared / $nprocs;
 # do any extra work needed for plotting mpi-io graphs
 if (defined $summary{MPIIO_INDEP_OPENS})
 {
-    system "$gnuplot -e \"data_file='mpiio-access-hist.dat'; graph_title='MPI-IO Access Sizes {\262}'; \\
+    system "$gnuplot -e \"data_file='mpiio-access-hist.dat'; graph_title='MPI-IO Access Sizes {/Times-Bold=32 \263}'; \\
     output_file='mpiio-access-hist.eps'\" access-hist-eps.gplt";
     system "$epstopdf mpiio-access-hist.eps";
 
@@ -990,9 +981,9 @@ system "$mv $tmp_dir/summary.pdf $output_file";
 
 sub process_file_record
 {
-    my $rank = $_[0];
-    my $hash = $_[1];
-    my(%file_record) = %{$_[2]};
+    my $hash = $_[0];
+    my(%file_record) = %{$_[1]};
+    my $rank = $file_record{'RANK'};
 
     if($file_record{'POSIX_OPENS'} == 0 &&
         $file_record{'POSIX_FOPENS'} == 0 &&
diff --git a/darshan-util/darshan-job-summary/share/summary.tex b/darshan-util/darshan-job-summary/share/summary.tex
index 1a1572a..81bb690 100644
--- a/darshan-util/darshan-job-summary/share/summary.tex
+++ b/darshan-util/darshan-job-summary/share/summary.tex
@@ -5,6 +5,8 @@
 \usepackage{lastpage}
 \usepackage{subfigure}
 \usepackage{multirow}
+\usepackage{threeparttable}
+
 %
 % GET THE MARGINS RIGHT, THE UGLY WAY
 %
@@ -38,11 +40,11 @@
 }\\
 \subfigure
 {
-    \includegraphics[scale=0.8]{time-summary.pdf}
+    \includegraphics[scale=0.75]{time-summary.pdf}
 }
 \subfigure
 {
-    \includegraphics[scale=0.8]{op-counts.pdf}
+    \includegraphics[scale=0.75]{op-counts.pdf}
 }
 \end{figure*}
 
@@ -50,12 +52,12 @@
 \centering
 \subfigure
 {
-    \includegraphics[scale=0.8]{posix-access-hist.pdf}
+    \includegraphics[scale=0.75]{posix-access-hist.pdf}
 }
 \ifdefined\inclmpiio
 \subfigure
 {
-    \includegraphics[scale=0.8]{mpiio-access-hist.pdf}
+    \includegraphics[scale=0.75]{mpiio-access-hist.pdf}
 }
 \fi
 \end{figure*}
@@ -66,10 +68,10 @@
 {
     \input{access-table.tex}
 }
-%\subfigure
-%{
-%    \input{file-count-table}
-%}
+\subfigure
+{
+    \input{file-count-table.tex}
+}
 \end{figure*}
 
 \begin{figure*}[!h]
@@ -102,6 +104,10 @@
 {
     \includegraphics[scale=0.65]{pattern.pdf}
 }
+\scriptsize
+\\ \textit{sequential}: An I/O op issued at an offset greater than where the previous I/O op ended.
+\\ \textit{consecutive}: An I/O op issued at the offset immediately following the end of the previous I/O op. \\
+\normalsize
 \subfigure
 {
     \input{variance-table.tex}
diff --git a/darshan-util/darshan-job-summary/share/title.tex b/darshan-util/darshan-job-summary/share/title.tex
index 88343b8..566b3bf 100644
--- a/darshan-util/darshan-job-summary/share/title.tex
+++ b/darshan-util/darshan-job-summary/share/title.tex
@@ -1,3 +1,5 @@
+\renewcommand{\footrulewidth}{0.4pt}
+
 \rhead{\thepage\ of \pageref{LastPage}}
 \chead[
 \large{\titlecmd \space (\titlemon/\titlemday/\titleyear)}


hooks/post-receive
--



More information about the Darshan-commits mailing list