gnuplot_sched.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. #suffix="-5800"
  3. suffix=""
  4. TIMINGDIR=$PWD/timing$suffix/
  5. sizelist=""
  6. schedlist=""
  7. outputfiles=""
  8. for file in `find $TIMINGDIR -type f`
  9. do
  10. name=`basename $file`
  11. size=`echo $name|sed -e "s/.*\.\(.*\)\..*/\1/"`
  12. sched=`echo $name|sed -e "s/\(.*\)\..*\(\..*\)/\1/"`
  13. sizelist="$sizelist $size"
  14. schedlist="$schedlist $sched"
  15. done
  16. sizelist=`echo $sizelist|tr " " "\n" |sort -n|uniq`
  17. schedlist=`echo $schedlist|tr " " "\n" |sort|uniq`
  18. for prio in `seq 0 1`
  19. do
  20. for sched in $schedlist
  21. do
  22. outputfile=output$suffix.$sched.$prio
  23. outputfiles="$outputfiles $outputfile"
  24. rm -f $outputfile
  25. for size in $sizelist
  26. do
  27. filename=$TIMINGDIR/$sched.$size.$prio
  28. if test -f $filename; then
  29. # file exists
  30. sum=0
  31. nsample=0
  32. for val in `cat $filename`
  33. do
  34. nsample=$(($nsample + 1))
  35. sum=$(echo "$sum + $val"|bc -l)
  36. done
  37. avg=$(echo "$sum / $nsample"|bc -l)
  38. gflops=$(echo "$size * $size * $size / ( $avg * 3000000)"|bc -l)
  39. echo "$size $gflops" >> $outputfile
  40. else
  41. # file does not exist
  42. echo "$size x" >> $outputfile
  43. fi
  44. done
  45. done
  46. done
  47. gnuplotline=""
  48. for outputfile in $outputfiles
  49. do
  50. line=" \"$outputfile\" with linespoint"
  51. gnuplotline="$gnuplotline $line @"
  52. done
  53. gnuplotarg=`echo $gnuplotline|tr '@' ','|sed -e "s/\(.*\),/\1/"`
  54. prefix=cholesky
  55. gnuplot > /dev/null << EOF
  56. set term postscript eps enhanced color
  57. set output "$prefix$suffix.eps"
  58. set datafile missing 'x'
  59. set pointsize 0.75
  60. #set title "Impact of granularity"
  61. set grid y
  62. set grid x
  63. set xrange [0:49152]
  64. #set logscale x
  65. #set xtics 8192,8192,65536
  66. #set key invert box right bottom title "Scheduling policy"
  67. #set size 0.65
  68. set xlabel "Matrix size"
  69. set ylabel "GFlop/s"
  70. plot $gnuplotarg
  71. EOF