Commit 62299210 authored by Rob Latham's avatar Rob Latham

another merge with trunk


git-svn-id: https://svn.mcs.anl.gov/repos/darshan/branches/more-pnetcdf@316 3b7491f3-a168-0410-bf4b-c445ed680a29
parents c11168eb 343685dc
......@@ -207,12 +207,10 @@ enum f_darshan_indices
CP_F_MPI_WRITE_TIME, /* cumulative mpi-io write time */
CP_F_MAX_READ_TIME,
CP_F_MAX_WRITE_TIME,
CP_F_FASTEST_RANK_TIME,
CP_F_SLOWEST_RANK_TIME,
CP_F_VARIANCE_RANK_TIME,
CP_F_VARIANCE_RANK_BYTES,
CP_F_NC_READ_TIME,
CP_F_NC_WRITE_TIME,
......
......@@ -228,6 +228,7 @@ void darshan_shutdown(int timing_flag)
void* pointers[CP_MAX_MEM_SEGMENTS];
int ret;
double red1=0, red2=0, gz1=0, gz2=0, write1=0, write2=0, tm_end=0;
double bcst1=0, bcst2=0, bcst3=0;
int nprocs;
char* trailing_data = NULL;
int i, j;
......@@ -310,10 +311,14 @@ void darshan_shutdown(int timing_flag)
memcpy(mnt_id_array_root, mnt_id_array,
CP_MAX_MNTS*sizeof(int64_t));
}
bcst1=MPI_Wtime();
MPI_Bcast(mnt_id_array_root, CP_MAX_MNTS*sizeof(int64_t), MPI_BYTE, 0,
MPI_COMM_WORLD);
MPI_Bcast(mnt_hash_array_root, CP_MAX_MNTS*sizeof(uint64_t), MPI_BYTE, 0,
MPI_COMM_WORLD);
bcst2=MPI_Wtime();
/* identify any common mount points that have different device ids on
* non-root processes
*/
......@@ -400,6 +405,7 @@ void darshan_shutdown(int timing_flag)
}
/* broadcast log file name */
bcst3=MPI_Wtime();
MPI_Bcast(logfile_name, PATH_MAX, MPI_CHAR, 0, MPI_COMM_WORLD);
final_job->log_job.end_time = time(NULL);
......@@ -466,9 +472,11 @@ void darshan_shutdown(int timing_flag)
double gz_tm, gz_slowest;
double write_tm, write_slowest;
double all_tm, all_slowest;
double bcst_tm, bcst_slowest;
tm_end = MPI_Wtime();
bcst_tm=(bcst2-bcst1)+(red1-bcst3);
red_tm = red2-red1;
gz_tm = gz2-gz1;
write_tm = write2-write1;
......@@ -482,11 +490,14 @@ void darshan_shutdown(int timing_flag)
MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
MPI_Allreduce(&all_tm, &all_slowest, 1,
MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
MPI_Allreduce(&bcst_tm, &bcst_slowest, 1,
MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
if(rank == 0)
{
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
printf("#<op>\t<nprocs>\t<time>\n");
printf("bcst\t%d\t%f\n", nprocs, bcst_slowest);
printf("reduce\t%d\t%f\n", nprocs, red_slowest);
printf("gzip\t%d\t%f\n", nprocs, gz_slowest);
printf("write\t%d\t%f\n", nprocs, write_slowest);
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/intrepid-fs0/logs/darshan/
#darshan
# darshan job summary
cd ../
install -d $PREFIX
install -d $PREFIX/bin
......@@ -16,6 +17,10 @@ install -m 644 util/lib/TeX/Encode.pm $PREFIX/lib/TeX/
install -m 644 util/lib/Number/Bytes/Human.pm $PREFIX/lib/Number/Bytes
install -m 644 util/share/* $PREFIX/share/
# we also need to build darshan-parser in 2.0.0
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make darshan-parser
install -m 755 darshan-parser $PREFIX/bin/
#gnuplot (new version with additional histogram support)
cd extern
tar -xvzf gnuplot-4.2.4.tar.gz
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/pvfs-surveyor/logs/darshan
#darshan
# darshan job summary
cd ../
install -d $PREFIX
install -d $PREFIX/bin
......@@ -16,6 +17,10 @@ install -m 644 util/lib/TeX/Encode.pm $PREFIX/lib/TeX/
install -m 644 util/lib/Number/Bytes/Human.pm $PREFIX/lib/Number/Bytes
install -m 644 util/share/* $PREFIX/share/
# we also need to build darshan-parser in 2.0.0
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make darshan-parser
install -m 755 darshan-parser $PREFIX/bin/
#gnuplot (new version with additional histogram support)
cd extern
tar -xvzf gnuplot-4.2.4.tar.gz
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
LOGDIR=/pvfs-surveyor/darshan_logs
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/intrepid-fs0/logs/darshan/
#darshan
cd ../
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ CFLAGS="-O2" && make && make install
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make && make install
mkdir -p $LOGDIR
$PREFIX/bin/darshan-mk-log-dirs.pl
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
LOGDIR=/pvfs-surveyor/darshan_logs
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/pvfs-surveyor/logs/darshan
#darshan
cd ../
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ CFLAGS="-O2" && make && make install
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make && make install
mkdir -p $LOGDIR
$PREFIX/bin/darshan-mk-log-dirs.pl
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/intrepid-fs0/logs/darshan/
#darshan
# darshan job summary
cd ../
install -d $PREFIX
install -d $PREFIX/bin
install -d $PREFIX/lib
install -d $PREFIX/lib/TeX
install -d $PREFIX/lib/Number
install -d $PREFIX/lib/Number/Bytes
install -d $PREFIX/share
install -m 755 util/bin/darshan-job-summary.pl $PREFIX/bin/
install -m 644 util/lib/TeX/Encode.pm $PREFIX/lib/TeX/
install -m 644 util/lib/Number/Bytes/Human.pm $PREFIX/lib/Number/Bytes
install -m 644 util/share/* $PREFIX/share/
# we also need to build darshan-parser in 2.0.0
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make darshan-parser
install -m 755 darshan-parser $PREFIX/bin/
#gnuplot (new version with additional histogram support)
cd extern
tar -xvzf gnuplot-4.2.4.tar.gz
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/pvfs-surveyor/logs/darshan
#darshan
# darshan job summary
cd ../
install -d $PREFIX
install -d $PREFIX/bin
install -d $PREFIX/lib
install -d $PREFIX/lib/TeX
install -d $PREFIX/lib/Number
install -d $PREFIX/lib/Number/Bytes
install -d $PREFIX/share
install -m 755 util/bin/darshan-job-summary.pl $PREFIX/bin/
install -m 644 util/lib/TeX/Encode.pm $PREFIX/lib/TeX/
install -m 644 util/lib/Number/Bytes/Human.pm $PREFIX/lib/Number/Bytes
install -m 644 util/share/* $PREFIX/share/
# we also need to build darshan-parser in 2.0.0
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make darshan-parser
install -m 755 darshan-parser $PREFIX/bin/
#gnuplot (new version with additional histogram support)
cd extern
tar -xvzf gnuplot-4.2.4.tar.gz
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
LOGDIR=/pvfs-surveyor/darshan_logs
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/intrepid-fs0/logs/darshan/
#darshan
cd ../
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ CFLAGS="-O2" && make && make install
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make && make install
# log dir already exists
#mkdir -p $LOGDIR
......
#!/bin/bash
PREFIX=/soft/apps/darshan-1.1.14
LOGDIR=/pvfs-surveyor/darshan_logs
PREFIX=/soft/apps/darshan-2.0.0
LOGDIR=/pvfs-surveyor/logs/darshan
#darshan
cd ../
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ CFLAGS="-O2" && make && make install
./configure --with-mem-align=16 --with-log-path=$LOGDIR --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ --with-jobid-env=COBALT_JOBID CFLAGS="-O2" && make && make install
# log dir already exists
#mkdir -p $LOGDIR
......
#!/bin/bash
#
# Test darshan-parser/darshan-job-summary.pl on the previous versions
# of the darshan log format.
#
LOGS=../example-output
RUNLOG=/tmp/run.log
PATH=../:${PATH}
namelist=()
for log in $(ls ${LOGS});
do
if [ $log = 'README.txt' ];
then
continue;
fi
name=${log/.gz/.pdf}
namelist=(${namelist[*]} $name)
../util/bin/darshan-job-summary.pl --output=${LOGS}/$name ${LOGS}/$log >> $RUNLOG 2>&1
rc=$?
if [ $rc -ne 0 ];
then
echo "failed: $rc : $log";
fi
done
for name in ${namelist[*]};
do
if [ -f ${LOGS}/$name ];
then
xpdf ${LOGS}/$name;
rm ${LOGS}/$name;
else
echo "summary not found: $name";
fi
done
......@@ -17,8 +17,8 @@ use Number::Bytes::Human qw(format_bytes);
my $gnuplot = "";
my $tmp_dir = tempdir( CLEANUP => 1 );
#my $tmp_dir = tempdir( CLEANUP => 0 );
#print "tmp dir: $tmp_dir\n";
my $tmp_dir = tempdir( CLEANUP => 0 );
print "tmp dir: $tmp_dir\n";
my $orig_dir = getcwd;
my $output_file = "summary.pdf";
......@@ -101,6 +101,12 @@ while ($line = <TRACE>) {
if ($line =~ /^# jobid: /) {
($junk, $jobid) = split(':', $line, 2);
}
if ($line =~ /^# darshan log version: /) {
($junk, $version) = split(':', $line, 2);
$version =~ s/^\s+//;
($major, $minor) = split(/\./, $version, 2);
print "version:$version major:$major minor:$minor\n";
}
}
else {
# parse line
......@@ -117,6 +123,8 @@ while ($line = <TRACE>) {
# is this a new file record?
if($fields[0] != $current_rank || $fields[1] != $current_hash)
{
$file_record_hash{CP_NAME_SUFFIX} = $fields[4];
# process previous record
process_file_record($current_rank, $current_hash, \%file_record_hash);
......@@ -251,6 +259,7 @@ while ($line = <TRACE>) {
}
# process last file record
$file_record_hash{CP_NAME_SUFFIX} = $fields[4];
process_file_record($current_rank, $current_hash, \%file_record_hash);
close(TRACE) || die "darshan-parser failure: $! $?";
......@@ -269,12 +278,13 @@ close(FA_WRITE_SH);
open(COUNTS, ">$tmp_dir/counts.dat") || die("error opening output file: $!\n");
print COUNTS "# P=POSIX, MI=MPI-IO indep., MC=MPI-IO coll., R=read, W=write\n";
print COUNTS "# PR, MIR, MCR, PW, MIW, MCW, Popen, Pseek, Pstat\n";
my $total_posix_opens = $summary{CP_POSIX_OPENS} + $summary{CP_POSIX_FOPENS};
my $total_syncs = $summary{CP_POSIX_FSYNCS} + $summary{CP_POSIX_FDSYNCS};
print COUNTS "Read, ", $summary{CP_POSIX_READS}, ", ",
$summary{CP_INDEP_READS}, ", ", $summary{CP_COLL_READS}, "\n",
"Write, ", $summary{CP_POSIX_WRITES}, ", ",
$summary{CP_INDEP_WRITES}, ", ", $summary{CP_COLL_WRITES}, "\n",
"Open, ", $summary{CP_POSIX_OPENS}, ", ", $summary{CP_INDEP_OPENS},", ",
"Open, ", $total_posix_opens, ", ", $summary{CP_INDEP_OPENS},", ",
$summary{CP_COLL_OPENS}, "\n",
"Stat, ", $summary{CP_POSIX_STATS}, ", 0, 0\n",
"Seek, ", $summary{CP_POSIX_SEEKS}, ", 0, 0\n",
......@@ -638,49 +648,59 @@ close(TABLES);
# Generate Per Filesystem Data
#
open(TABLES, ">$tmp_dir/fs-data-table.tex") || die("error opening output files:$!\n");
print TABLES "
\\begin{tabular}{c|r|r|r|r}
\\multicolumn{5}{c}{ } \\\\
\\multicolumn{5}{c}{Data Transfer Per Filesystem} \\\\
\\hline
\\multirow{2}{*}{File System} \& \\multicolumn{2}{c}{Write} \\vline \& \\multicolumn{2}{c}{Read} \\\\
\\cline{2-5}
\& MiB \& Ratio \& MiB \& Ratio \\\\\
\\hline
\\hline
";
foreach $key (keys %fs_data)
if (($major > 1) or ($minor > 23))
{
my $wr_total_mb = ($fs_data{$key}->[1] / (1024*1024));
my $rd_total_mb = ($fs_data{$key}->[0] / (1024*1024));
my $wr_total_rt;
if ($cumul_write_bytes_shared+$cumul_write_bytes_shared)
print TABLES "
\\begin{tabular}{c|r|r|r|r}
\\multicolumn{5}{c}{ } \\\\
\\multicolumn{5}{c}{Data Transfer Per Filesystem} \\\\
\\hline
\\multirow{2}{*}{File System} \& \\multicolumn{2}{c}{Write} \\vline \& \\multicolumn{2}{c}{Read} \\\\
\\cline{2-5}
\& MiB \& Ratio \& MiB \& Ratio \\\\\
\\hline
\\hline
";
foreach $key (keys %fs_data)
{
$wr_total_rt = ($fs_data{$key}->[1] / ($cumul_write_bytes_shared + $cumul_write_bytes_indep));
}
else
{
$wr_total_rt = 0;
}
my $wr_total_mb = ($fs_data{$key}->[1] / (1024*1024));
my $rd_total_mb = ($fs_data{$key}->[0] / (1024*1024));
my $wr_total_rt;
my $rd_total_rt;
if ($cumul_write_bytes_shared+$cumul_read_bytes_indep)
{
$rd_total_rt = ($fs_data{$key}->[0] / ($cumul_read_bytes_shared + $cumul_read_bytes_indep));
}
else
{
$rd_total_rt = 0;
}
if ($cumul_write_bytes_shared+$cumul_write_bytes_shared)
{
$wr_total_rt = ($fs_data{$key}->[1] / ($cumul_write_bytes_shared + $cumul_write_bytes_indep));
}
else
{
$wr_total_rt = 0;
}
my $rd_total_rt;
if ($cumul_read_bytes_shared+$cumul_read_bytes_indep)
{
$rd_total_rt = ($fs_data{$key}->[0] / ($cumul_read_bytes_shared + $cumul_read_bytes_indep));
}
else
{
$rd_total_rt = 0;
}
printf TABLES "%s \& %.5f \& %.5f \& %.5f \& %.5f \\\\\n",
$key, $wr_total_mb, $wr_total_rt, $rd_total_mb, $rd_total_rt;
printf TABLES "%s \& %.5f \& %.5f \& %.5f \& %.5f \\\\\n",
$key, $wr_total_mb, $wr_total_rt, $rd_total_mb, $rd_total_rt;
}
print TABLES "
\\hline
\\end{tabular}
";
}
else
{
print TABLES "
\\rule{0in}{1in}
\\parbox{5in}{Log versions prior to 1.24 do not support per-filesystem data.}
";
}
close(TABLES);
......@@ -852,6 +872,52 @@ print FILEACC "
";
close(FILEACC);
#
# Variance Data
#
open(VARP, ">$tmp_dir/variance-table.tex") || die("error opening output file:$!\n");
print VARP "
\\begin{tabular}{c|r|r|r|r|r|r|r|r|r}
\\multicolumn{10}{c}{} \\\\
\\multicolumn{10}{c}{Variance in Shared Files} \\\\
\\hline
File \& Processes \& \\multicolumn{3}{c}{Fastest} \\vline \&
\\multicolumn{3}{c}{Slowest} \\vline \& \\multicolumn{2}{c}{\$\\sigma\$} \\\\
\\cline{3-10}
Suffix \& \& Rank \& Time \& Bytes \& Rank \& Time \& Bytes \& Time \& Bytes \\\\
\\hline
\\hline
";
foreach $key (keys %hash_files) {
if ($hash_files{$key}{'procs'} > 1)
{
my $vt = sprintf("%.3g", sqrt($hash_files{$key}{'variance_time'}));
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'});
print VARP "
$hash_files{$key}{'name'} \&
$hash_files{$key}{'procs'} \&
$hash_files{$key}{'fastest_rank'} \&
$hash_files{$key}{'fastest_time'} \&
$fast_bytes \&
$hash_files{$key}{'slowest_rank'} \&
$hash_files{$key}{'slowest_time'} \&
$slow_bytes \&
$vt \&
$vb \\\\
";
}
}
print VARP "
\\hline
\\end{tabular}
";
close(VARP);
if(-x "$FindBin::Bin/gnuplot")
{
$gnuplot = "$FindBin::Bin/gnuplot";
......@@ -900,7 +966,8 @@ sub process_file_record
if($file_record{'CP_INDEP_OPENS'} == 0 &&
$file_record{'CP_COLL_OPENS'} == 0 &&
$file_record{'CP_POSIX_OPENS'} == 0)
$file_record{'CP_POSIX_OPENS'} == 0 &&
$file_record{'CP_POSIX_FOPENS'} == 0)
{
# file wasn't really opened, just stat probably
return;
......@@ -979,6 +1046,81 @@ sub process_file_record
}
}
$hash_files{$hash}{'name'} = $file_record{CP_NAME_SUFFIX};
if ($rank == -1)
{
$hash_files{$hash}{'procs'} = $nprocs;
$hash_files{$hash}{'slowest_rank'} = $file_record{'CP_SLOWEST_RANK'};
$hash_files{$hash}{'slowest_time'} = $file_record{'CP_F_SLOWEST_RANK_TIME'};
$hash_files{$hash}{'slowest_bytes'} = $file_record{'CP_SLOWEST_RANK_BYTES'};
$hash_files{$hash}{'fastest_rank'} = $file_record{'CP_FASTEST_RANK'};
$hash_files{$hash}{'fastest_time'} = $file_record{'CP_F_FASTEST_RANK_TIME'};
$hash_files{$hash}{'fastest_bytes'} = $file_record{'CP_FASTEST_RANK_BYTES'};
$hash_files{$hash}{'variance_time'} = $file_record{'CP_F_VARIANCE_RANK_TIME'};
$hash_files{$hash}{'variance_bytes'} = $file_record{'CP_F_VARIANCE_RANK_BYTES'};
}
else
{
my $total_time = $file_record{'CP_F_POSIX_META_TIME'} +
$file_record{'CP_F_POSIX_READ_TIME'} +
$file_record{'CP_F_POSIX_WRITE_TIME'};
my $total_bytes = $file_record{'CP_BYTES_READ'} +
$file_record{'CP_BYTES_WRITTEN'};
if(!defined($hash_files{$hash}{'slowest_time'}) ||
$hash_files{$hash}{'slowest_time'} < $total_time)
{
$hash_files{$hash}{'slowest_time'} = $total_time;
$hash_files{$hash}{'slowest_rank'} = $rank;
$hash_files{$hash}{'slowest_bytes'} = $total_bytes;
}
if(!defined($hash_files{$hash}{'fastest_time'}) ||
$hash_files{$hash}{'fastest_time'} > $total_time)
{
$hash_files{$hash}{'fastest_time'} = $total_time;
$hash_files{$hash}{'fastest_rank'} = $rank;
$hash_files{$hash}{'fastest_bytes'} = $total_bytes;
}
if(!defined($hash_files{$hash}{'variance_time_S'}))
{
$hash_files{$hash}{'variance_time_S'} = 0;
$hash_files{$hash}{'variance_time_T'} = $total_time;
$hash_files{$hash}{'variance_time_n'} = 1;
$hash_files{$hash}{'variance_bytes_S'} = 0;
$hash_files{$hash}{'variance_bytes_T'} = $total_bytes;
$hash_files{$hash}{'variance_bytes_n'} = 1;
$hash_files{$hash}{'procs'} = 1;
$hash_files{$hash}{'variance_time'} = 0;
$hash_files{$hash}{'variance_bytes'} = 0;
}
else
{
my $n = $hash_files{$hash}{'variance_time_n'};
my $m = 1;
my $T = $hash_files{$hash}{'variance_time_T'};
$hash_files{$hash}{'variance_time_S'} += ($m/($n*($n+$m)))*(($n/$m)*$total_time - $T)*(($n/$m)*$total_time - $T);
$hash_files{$hash}{'variance_time_T'} += $total_time;
$hash_files{$hash}{'variance_time_n'} += 1;
$hash_files{$hash}{'variance_time'} = $hash_files{$hash}{'variance_time_S'} / $hash_files{$hash}{'variance_time_n'};
$n = $hash_files{$hash}{'variance_bytes_n'};
$m = 1;
$T = $hash_files{$hash}{'variance_bytes_T'};
$hash_files{$hash}{'variance_bytes_S'} += ($m/($n*($n+$m)))*(($n/$m)*$total_bytes - $T)*(($n/$m)*$total_bytes - $T);
$hash_files{$hash}{'variance_bytes_T'} += $total_bytes;
$hash_files{$hash}{'variance_bytes_n'} += 1;
$hash_files{$hash}{'variance_bytes'} = $hash_files{$hash}{'variance_bytes_S'} / $hash_files{$hash}{'variance_bytes_n'};
$hash_files{$hash}{'procs'} = $n;
}
}
# TODO
# (detect mpi or posix and):
# - sum meta time per rank for uniq files
......
......@@ -87,6 +87,14 @@
}
\end{figure*}
\begin{figure*}[!h]
\centering
\subfigure
{
\input{variance-table}
}
\end{figure*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment