#!/usr/local/bin/perl
#converts a MPI Trace. Converts the min-avg-max data to histogram 

use POSIX qw(ceil floor);

if($#ARGV==-1)
{
  print "Usage: fakehistogram filename [bucket-len] [num-nodes]\n";
  exit;
}

$blen=$ARGV[1];
if($blen == 0)
{
  $blen = 5;
}
$num_p=$ARGV[2];
if($num_p == 0)
{
  $num_p = 2;
}
if ($blen > $num_p)
{
  $blen = $num_p;
}

open (MYFILE, $ARGV[0]);
while (<MYFILE>) {
  chomp;
  $a=$_;
  $b=substr($a, 0, 4);
  if($b eq "TIME")
  {
    @num = split(/ /, $a);
    printf "TIME histogram: %d %d ", @num[2],(@num[4]-@num[2])/$num_p;
    $sum = 0;
    for ($i = 0; $i < $blen-1; $i++)
    {
      $sum = $sum + floor($num_p/$blen);
      print floor($num_p/$blen), " ";
    }
    print $num_p - $sum;
    print "\n";
  }
  else
  {
    print $a,"\n";
  }
}
close (MYFILE);
