From 16e42b8b8099b7f54768b031d8f5bac10c9271b7 Mon Sep 17 00:00:00 2001 From: carns Date: Mon, 14 Dec 2009 02:47:36 +0000 Subject: [PATCH] fixed buggy access size counting git-svn-id: https://svn.mcs.anl.gov/repos/darshan/trunk@139 3b7491f3-a168-0410-bf4b-c445ed680a29 --- util/bin/darshan-job-summary.pl | 77 ++++++++++----------------------- 1 file changed, 24 insertions(+), 53 deletions(-) diff --git a/util/bin/darshan-job-summary.pl b/util/bin/darshan-job-summary.pl index 33b7745..0f15882 100755 --- a/util/bin/darshan-job-summary.pl +++ b/util/bin/darshan-job-summary.pl @@ -20,14 +20,13 @@ my $tmp_dir = tempdir( CLEANUP => 1 ); my $orig_dir = getcwd; my $output_file = "summary.pdf"; my $input_file = ""; +my %access_hash = (); +my @access_size = (); process_args(); open(TRACE, $input_file) || die("can't open $input_file for processing: $!\n"); -$max_access = -1; -$max_access_hash = 0; - while ($line = ) { chop($line); @@ -79,44 +78,21 @@ while ($line = ) { } } - # record access and stride counters - if ($fields[2] =~ /(^CP_STRIDE.*)/) { - $tmpfield = $1; - - if(defined $common{$fields[1]}{$tmpfield}) { - $common{$fields[1]}{$tmpfield} += $fields[3]; - } - else { - $common{$fields[1]}{$tmpfield} = $fields[3]; - } - $common{$fields[1]}{'name'} = $fields[4]; + if ($fields[2] =~ /^CP_ACCESS(.)_ACCESS/) { + $access_size[$1] = $fields[3]; } - if ($fields[2] =~ /(^CP_ACCESS.*)/) { - $tmpfield = $1; - if(defined $common{$fields[1]}{$tmpfield}) { - $common{$fields[1]}{$tmpfield} += $fields[3]; - } - else { - $common{$fields[1]}{$tmpfield} = $fields[3]; + if ($fields[2] =~ /^CP_ACCESS(.)_COUNT/) { + my $tmp_access_size = $access_size[$1]; + if(defined $access_hash{$tmp_access_size}){ + $access_hash{$tmp_access_size} += $fields[3]; } - if(defined $common{$fields[1]}{'totalaccess'}) { - $common{$fields[1]}{'totalaccess'} += $fields[3]; - } - else { - $common{$fields[1]}{'totalaccess'} = $fields[3]; - } - - if($common{$fields[1]}{'totalaccess'} > $max_access) { - $max_access = $common{$fields[1]}{'totalaccess'}; - $max_access_hash = $fields[1]; + else{ + $access_hash{$tmp_access_size} = $fields[3]; } } } } -# print "max_access: $max_access.\n"; -# print "max_access_hash: $max_access_hash.\n"; - # counts of operations 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"; @@ -275,36 +251,31 @@ close TABLES; open(TABLES, ">$tmp_dir/access-table.tex") || die("error opening output file:$!\n"); print TABLES " \\begin{tabular}{|r|r|} -\\multicolumn{2}{c}{Top 4 Access Sizes} \\\\ +\\multicolumn{2}{c}{Common Access Sizes} \\\\ \\hline access size \& count \\\\ \\hline - $common{$max_access_hash}{CP_ACCESS1_ACCESS} \& $common{$max_access_hash}{CP_ACCESS1_COUNT} \\\\ - $common{$max_access_hash}{CP_ACCESS2_ACCESS} \& $common{$max_access_hash}{CP_ACCESS2_COUNT} \\\\ - $common{$max_access_hash}{CP_ACCESS3_ACCESS} \& $common{$max_access_hash}{CP_ACCESS3_COUNT} \\\\ - $common{$max_access_hash}{CP_ACCESS4_ACCESS} \& $common{$max_access_hash}{CP_ACCESS4_COUNT} \\\\ -\\hline -\\end{tabular} "; -close TABLES; -open(TABLES, ">$tmp_dir/stride-table.tex") || die("error opening output file:$!\n"); +# sort access sizes (descending) +my $i = 0; +foreach $value (sort {$access_hash{$b} cmp $access_hash{$a} } keys %access_hash) { + if($i == 3) { + last; + } + if($access_hash{$value} == 0) { + last; + } + print TABLES "$value \& $access_hash{$value} \\\\\n"; + $i++; +} + print TABLES " -\\begin{tabular}{|r|r|} -\\multicolumn{2}{c}{file: $common{$max_access_hash}{'name'}} \\\\ -\\hline -stride size \& count \\\\ -\\hline - $common{$max_access_hash}{CP_STRIDE1_STRIDE} \& $common{$max_access_hash}{CP_STRIDE1_COUNT} \\\\ - $common{$max_access_hash}{CP_STRIDE2_STRIDE} \& $common{$max_access_hash}{CP_STRIDE2_COUNT} \\\\ - $common{$max_access_hash}{CP_STRIDE3_STRIDE} \& $common{$max_access_hash}{CP_STRIDE3_COUNT} \\\\ - $common{$max_access_hash}{CP_STRIDE4_STRIDE} \& $common{$max_access_hash}{CP_STRIDE4_COUNT} \\\\ \\hline \\end{tabular} "; close TABLES; - open(TIME, ">$tmp_dir/time-summary.dat") || die("error opening output file:$!\n"); print TIME "# , , , , \n"; print TIME "POSIX, ", ((($runtime * $nprocs - $summary{CP_F_POSIX_READ_TIME} - -- 2.26.2