blob: 28099fbff03fe524a5ff1f2d0aea74fa5c22384d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/usr/local/bin/bash
##############################################################################
#
# Usage: gr2ps [options] <gr-file>
#
# Transform the log file of a GrAnSim run (a .gr file) into a quasi-parallel
# profile (a .qp file) and then into a PostScript file, showing essentially
# the total number of running, runnable and blocked tasks.
#
# Options:
# -o <file> ... write PS file to <file>
# -i <int> ... info level from 1 to 7; number of queues to display
# -m ... create mono PostScript file instead a color one.
# -O ... optimize the produced .ps w.r.t. size
# NB: With this option info is lost. If there are several values
# with same x value only the first one is printed, all
# others are dropped.
# -s <str> ... print <str> in the top right corner of the generated graph
# -v ... be talkative.
# -h ... print help message (this header).
#
##############################################################################
##############################################################################
# Internal comments:
# ----------------------------------------------------------------------
# This version works on both Suns and Alphas -- KH
# Any volunteers to convert it to /bin/sh?
# Next time somebody calls for volunteers I'd better keep my mouth shut ... HWL
##############################################################################
progname="`basename $0`"
args="$*"
verb=0
help=0
mono=""
psfile=""
debug=""
optimize=""
info_level=0
info_mask=""
string=""
getopts "hvmDOSs:o:i:I:" name
while [ "$name" != "?" ] ; do
case $name in
h) help=1;;
v) verb=1;;
m) mono="-m";;
D) debug="-D";;
O) optimize="-O";;
S) lines="-S";;
s) string=$OPTARG;;
i) info_level=$OPTARG;;
I) info_mask=$OPTARG;;
o) psfile=$OPTARG;;
esac
getopts "hvmDOSs:o:i:I:" name
done
shift $[ $OPTIND - 1 ]
if [ -z "$1" ]
then echo "usage: $progname [-m] file[.gr]"
exit 1;
fi
f="`basename $1 .gr`"
grfile="$f".gr
qpfile="$f".qp
ppfile="$f".pp
if [ -z "$psfile" ]
then psfile="$f".ps
fi
if [ $help -eq 1 ]
then no_of_lines=`cat $0 | awk 'BEGIN { n = 0; } \
/^$/ { print n; \
exit; } \
{ n++; }'`
echo "`head -$no_of_lines $0`"
exit
fi
if [ $verb -eq 1 ]
then echo "Input file: $grfile"
echo "Quasi-parallel file: $qpfile"
echo "PP file: $ppfile"
echo "PostScript file: $psfile"
if [ "$mono" = "-m" ]
then echo "Producing monochrome PS file"
else echo "Producing color PS file"
fi
if [ "$optimize" = "-O" ]
then echo "Optimization is ON"
else echo "Optimization is OFF"
fi
if [ "$debug" = "-D" ]
then echo "Debugging is turned ON"
else echo "Debugging is turned OFF"
fi
fi
# unset noclobber
if [ ! -f "$grfile" ]
then
echo "$grfile does not exist"
exit 1
else
rm -f "$qpfile" "$psfile"
prog=`head -1 "$grfile" | sed -e 's/Granularity Simulation for //'`
echo "$prog" >| "$qpfile"
if [ $verb -eq 1 ]; then echo "Executed program: $prog"; fi
date >> "$qpfile"
date="`date`"
cat "$grfile" | gr2qp | ghc-fool-sort | sort -n +0 -1 | ghc-unfool-sort >> "$qpfile"
# max=`tail -2 "$qpfile" | awk '!/^Number of threads:/ { print $1; }'`
max=`tail -1 "$qpfile" | awk '{ print $1; }'`
if [ $verb -eq 1 ]; then echo "Total runtime: $max"; fi
opts="";
if [ $info_level -gt 0 ]
then opts="-i $info_level";
fi
if [ -n "$info_mask" ]
then opts="-I $info_mask";
fi
tail +3 "$qpfile" | qp2ps $debug $optimize $mono $lines "-s" "$string" $opts "$max" "$prog" "$date" >| "$psfile"
rm -f "$qpfile"
fi
|