/[MITgcm]/mitgcm.org/front_content/make_summary
ViewVC logotype

Annotation of /mitgcm.org/front_content/make_summary

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.76 - (hide annotations) (download)
Sun Feb 24 15:27:58 2013 UTC (12 years, 4 months ago) by jmc
Branch: MAIN
Changes since 1.75: +3 -4 lines
update current list of tested platforms

1 edhill 1.1 #! /usr/bin/env bash
2    
3 jmc 1.76 # $Header: /u/gcmpack/mitgcm.org/front_content/make_summary,v 1.75 2012/09/08 14:22:08 jmc Exp $
4 edhill 1.1 #
5     # The purpose of this script is to create HTML summaries of the
6     # directories produced by the "parse_emails" script.
7    
8    
9     usage()
10     {
11     echo
12     echo "Usage: $0 [OPTIONS]"
13 jmc 1.67 echo
14 edhill 1.1 echo "where possible OPTIONS are:"
15     echo " (-help|-h) print usage"
16     echo " (-date |-d )PERIOD run for PERIOD=\"YYYY_MM\""
17     echo " [def=\"$PERIOD\"]"
18 jmc 1.67 echo
19 edhill 1.1 exit 1
20     }
21    
22 jmc 1.61 export LC_ALL="en_US.UTF-8"
23 jmc 1.36 CURR_PER=`date +%Y`"_"`date +%m`
24 edhill 1.1 # defaults
25 jmc 1.36 PERIOD=$CURR_PER
26 edhill 1.1
27     # Parse options
28     ac_prev=
29     for ac_option ; do
30 jmc 1.35
31 edhill 1.1 # If the previous option needs an argument, assign it.
32     if test -n "$ac_prev"; then
33 jmc 1.74 eval "$ac_prev=\$ac_option"
34     ac_prev=
35     continue
36 edhill 1.1 fi
37 jmc 1.35
38 edhill 1.1 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
39 jmc 1.35
40 edhill 1.1 case $ac_option in
41 jmc 1.71
42 edhill 1.1 -help | --help | -h | --h)
43     usage ;;
44 jmc 1.35
45 jmc 1.71 -date | --date | -d | --d)
46     ac_prev=PERIOD ;;
47     --date=* | -date=*)
48     PERIOD=$ac_optarg ;;
49    
50     *)
51 edhill 1.1 echo "Error: don't understand argument \"$ac_option\""
52     usage
53 jmc 1.71 ;;
54 jmc 1.35
55 edhill 1.1 esac
56 jmc 1.35
57 edhill 1.1 done
58    
59 jmc 1.35 #INDIR="/net/orwell/export/export-9/mitgcm-testing/results/$PERIOD"
60 jmc 1.44 #OUTDIR="/home/jmc/mitgcm/test_web/summary"
61 edhill 1.1 INDIR="/u/u0/httpd/html/testing/results/$PERIOD"
62     OUTDIR="/u/u0/httpd/html/testing/summary"
63 jmc 1.35
64 jmc 1.36 OUTFILE=$OUTDIR"/output_"$PERIOD".html"
65 jmc 1.35 res_url="http://mitgcm.org/testing/"
66 edhill 1.1
67 jmc 1.36 # Create the links in $OUTFILE :
68 edhill 1.1 echo "Creating the \"latest\" file for each machine: "
69 edhill 1.5 the_date=`date`
70 edhill 1.1
71 jmc 1.60 sed "s/_PERIOD/$PERIOD/" summary_head > $OUTFILE
72     cat <<EOF >>$OUTFILE
73 edhill 1.1 <table align="center" cellpadding="0" cellspacing="0" border="0" width="95%">
74     <tr bgcolor="#00cccc">
75 edhill 1.4 <td height="0"> <b>Nickname</b> </td>
76 edhill 1.1 <td> <b>OPTFILE Name</b> </td>
77 edhill 1.4 <td> <b>Type</b> </td>
78 edhill 1.5 <td> <b>Date</b> </td>
79 edhill 1.4 <td> <b>Summary</b> </td>
80 edhill 1.6 <td> <b>Ratio</b> </td>
81 edhill 1.1 </tr>
82    
83     EOF
84    
85     color="#bbffdd"
86 edhill 1.10 ncolor="#bbddff"
87 edhill 1.1
88 jmc 1.76 MACHINES="aces- acesgrid baudelaire dickens danton beagle"
89     MACHINES="$MACHINES pleiades iblade sx8 uv100 solasrv stomp weber"
90 edhill 1.1
91 jmc 1.34 ( cd $INDIR ; ls -1 -t */summary.txt | sed 's/\/summary.txt//' ) > ./dir_all
92 edhill 1.1
93 edhill 1.20 MALL=`cat ./dir_all | sed -e 's|_| |g' | awk '{print $2}' | sort | uniq`
94     for madd in $MALL ; do
95     present=0
96     for m in $MACHINES ; do
97 jmc 1.71 echo $madd | grep $m > /dev/null 2>&1
98     RETVAL=$?
99     test $RETVAL = 0 && present=1
100     continue
101 edhill 1.20 done
102     test $present = 0 && MACHINES="$MACHINES $madd"
103     done
104 jmc 1.70 #MACHINES="baudelaire"
105 edhill 1.20
106 edhill 1.1 for mname in $MACHINES ; do
107    
108     echo " $mname"
109    
110     dir_list=`grep $mname ./dir_all`
111     echo -n "" > ./mlist
112    
113     for i in $dir_list ; do
114    
115     dir=$INDIR"/"$i
116     OPTFILE=
117     if test -r $dir/summary.txt ; then
118     comm=`grep 'OPTFILE=' $dir/summary.txt`
119     eval $comm
120     OPTFILE=${OPTFILE##*/}
121     fi
122     if test "x$OPTFILE" = x -a -r "$dir/genmake_state" ; then
123 edhill 1.3 comm=`grep 'OPTFILE=' $dir/genmake_state 2>/dev/null`
124 edhill 1.1 eval $comm
125     OPTFILE=${OPTFILE##*/}
126     fi
127     if test "x$OPTFILE" = x ; then
128 edhill 1.21 comm=`grep '^# OPTFILE=' $dir/*/Makefile* 2>/dev/null | head -1`
129 edhill 1.3 comm=${comm##*#}
130 edhill 1.1 eval $comm
131     OPTFILE=${OPTFILE##*/}
132     fi
133     if test "x$OPTFILE" = x ; then
134     OPTFILE="not_explicitly_specified"
135     fi
136 edhill 1.4
137 jmc 1.73 # EXTRA = non-standard list of experiment
138 edhill 1.4 ADJOINT=
139 jmc 1.71 TANGLIN=
140 jmc 1.32 RESTART=0
141 jmc 1.75 EXTRA=
142 jmc 1.66 FAST=0
143     DVLP=0
144 jmc 1.69 MPI=0
145 jmc 1.49 MTH=0
146 jmc 1.62 UR4=0
147 edhill 1.4 if test -r $dir/summary.txt ; then
148     comm=`grep 'ADJOINT=true' $dir/summary.txt 2>/dev/null`
149     eval $comm
150 jmc 1.71 comm=`grep 'TANGLIN=true' $dir/summary.txt 2>/dev/null`
151     eval $comm
152 jmc 1.32 RESTART=`grep -c 'test 2+2=4 summary' $dir/summary.txt`
153 jmc 1.73 comm=`grep '^run: .*testreport.* ' $dir/summary.txt`
154 jmc 1.75 EXTRA=`echo "$comm" | grep " -*-tdir\>" | sed -e "s/^.* -*-tdir\>//" -e "s/ -.*$//"`
155     if test "x$EXTRA" = x ; then
156     EXTRA=`echo "$comm" | grep " -*-t\>" | sed -e "s/^.*-*-t\>//" -e "s/ -.*$//"`
157     fi
158     if test "x$EXTRA" = x ; then EXTRA=0 ; else
159     #echo -n "EXTRA=$EXTRA"
160     nn0=`echo $EXTRA | sed "s/ *' *//g" | wc -w`
161     nn1=`echo $EXTRA | sed "s/ *' *//g" | tr ' ' '\n' | grep -c "\<monod_"`
162     nn2=`echo $EXTRA | sed "s/ *' *//g" | tr ' ' '\n' | grep -c "\<darwin_"`
163     EXTRA=1
164     if [ $nn1 -ge 2 ] ; then EXTRA=2 ; fi
165     if [ $nn2 -ge 2 ] ; then EXTRA=3 ; fi
166     #echo " : nn0=$nn0 ; nn1=$nn1 ; nn2=$nn2"
167 jmc 1.73 fi
168     FAST=`echo "$comm" | grep -c " -*-fast\>"`
169 jmc 1.66 if test "x$FAST" = x0 ; then
170 jmc 1.75 FAST=`echo "$comm" | grep -c " '*-noieee'*"`
171 jmc 1.66 fi
172 jmc 1.73 DVLP=`echo "$comm" | grep -c " -*-devel\>"`
173     MPI=`echo "$comm" | grep -c " -*-mpi\>"`
174 jmc 1.69 if test "x$MPI" = x0 ; then
175 jmc 1.75 MPI=`echo "$comm" | grep -c " -*-MPI\>"`
176 jmc 1.69 fi
177 jmc 1.73 MTH=`echo "$comm" | grep -c " -*-mth\>"`
178     UR4=`echo "$comm" | grep -c " -*-use_r4\>"`
179 jmc 1.62 if test "x$UR4" = x0 ; then
180 jmc 1.75 UR4=`echo "$comm" | grep -c " -*-ur4\>"`
181 jmc 1.62 fi
182 edhill 1.4 fi
183 jmc 1.71 if test "x$ADJOINT" = xtrue ; then
184 jmc 1.73 kind="adjoint" ; order=0
185 jmc 1.71 elif test "x$TANGLIN" = xtrue ; then
186 jmc 1.73 kind="tanglin" ; order=1
187 jmc 1.70 elif test "x$RESTART" = x0 ; then
188 jmc 1.73 kind="forward" ; order=2
189 edhill 1.4 else
190 jmc 1.73 kind="restart" ; order=3
191     fi
192 jmc 1.75 order=`expr $order + 10 \* $EXTRA`
193 jmc 1.73 order=`printf '%3.3i' $order`
194 jmc 1.62 if test "x$UR4" = x1 ; then
195     OPTFILE="${OPTFILE}.use_r4"
196     fi
197 jmc 1.69 if test "x$MPI" = x1 ; then
198     yy=`echo $OPTFILE | grep -c '+mpi'`
199     if test $yy = 0 ; then OPTFILE="${OPTFILE}+mpi" ; fi
200     fi
201 jmc 1.55 if test "x$MTH" = x1 ; then
202     yy=`echo $OPTFILE | grep -c '+mth$'`
203     if test $yy = 0 ; then OPTFILE="${OPTFILE}+mth" ; fi
204     fi
205 jmc 1.66 if test "x$FAST" = x1 ; then
206     OPTFILE="${OPTFILE}.fast"
207     fi
208     if test "x$DVLP" = x1 ; then
209     OPTFILE="${OPTFILE}.dvlp"
210 jmc 1.42 fi
211 edhill 1.4
212 edhill 1.6 t_pass="--"
213     t_tot="--"
214     if test -r $dir/summary.txt ; then
215 jmc 1.30 grep '^[YN] [YN] [YN] [YN]' $dir/summary.txt > ./all_tests 2>/dev/null
216 edhill 1.6 t_tot=`cat ./all_tests | wc -l | sed -e 's| ||g'`
217 jmc 1.38 t_pass=`grep '^Y Y Y Y' ./all_tests | grep 'pass ' | wc -l | sed -e 's| ||g'`
218 edhill 1.6 fi
219 jmc 1.30 rm -f ./all_tests
220 edhill 1.6 # echo "${dir##*/} : $t_pass out of $t_tot"
221    
222 edhill 1.1 tokens=`echo $i | sed -e 's|_| |g'`
223     echo "" > ./ms_tmp
224     for tok in $tokens ; do
225     echo $tok >> ./ms_tmp
226     done
227 jmc 1.59 DAY=`cat ./ms_tmp | awk '(length($1)==8 && substr($1,0,2)=="20")'`
228 edhill 1.1 rm -f ./ms_tmp
229 edhill 1.4
230 jmc 1.70 echo "$OPTFILE$order $DAY $OPTFILE $kind $i $t_pass:$t_tot" >> ./mlist
231 edhill 1.1
232     done
233    
234     # helpful for debugging
235     # cat ./mlist
236    
237     # Do we have any data? If so, create the latest pointer.
238     num=`wc -l ./mlist | awk '{print $1}'`
239     if test $num -gt 0 ; then
240 edhill 1.10
241     # swap colors
242 jmc 1.71 ctmp=$color
243     color=$ncolor
244     ncolor=$ctmp
245 edhill 1.10
246 edhill 1.4 keys=`cat ./mlist | cut -d " " -f 1 | sort | uniq`
247 edhill 1.1
248 edhill 1.4 for key in $keys ; do
249 edhill 1.17 tline=`grep "^$key " ./mlist | head -1`
250 edhill 1.6 ratio=`echo $tline | cut -d " " -f 6`
251 edhill 1.4 ldir=`echo $tline | cut -d " " -f 5`
252     kind=`echo $tline | cut -d " " -f 4`
253     optf=`echo $tline | cut -d " " -f 3`
254     DAY=`echo $tline | cut -d " " -f 2`
255 edhill 1.1 URL="results/$PERIOD/$ldir"
256 jmc 1.75 #-- machine name to print:
257     sname=`echo $mname | sed 's/-$//'`
258     alt=`echo $key | sed "s/$optf//"`
259     #if [ $alt -ge 30 ] ; then sname="${sname}.darwin"
260     #elif [ $alt -ge 20 ] ; then sname="${sname}.monod" ; fi
261 jmc 1.36 cat <<EOF >>$OUTFILE
262 edhill 1.1 <tr bgcolor="$color">
263 jmc 1.68 <td height="0"> $sname </td>
264 edhill 1.1 <td> $optf </td>
265 edhill 1.4 <td> $kind </td>
266     <td> <a href="$res_url$URL">$DAY</a> </td>
267     <td> <a href="$res_url$URL/summary.txt"> summary.txt </a> </td>
268 edhill 1.6 <td> $ratio </td>
269 edhill 1.1 </tr>
270     EOF
271     done
272     fi
273    
274     done
275    
276 jmc 1.36 cat >> $OUTFILE << EOF
277 edhill 1.5 <tr bgcolor="#00cccc">
278 edhill 1.6 <td height="0" colspan="6" align="center" >This table generated on: $the_date</td>
279     </tr>
280 edhill 1.1
281     </table>
282 edhill 1.6
283 edhill 1.26 <p>Examples of the scripts used for these testing runs can be obtained from: <a
284 jmc 1.60 href="http://mitgcm.org/viewvc/MITgcm/MITgcm/tools/example_scripts/">
285 edhill 1.26 MITgcm/tools/example_scripts</a>.</p>
286 edhill 1.6
287    
288 edhill 1.1 </body>
289     </html>
290    
291     EOF
292    
293     rm -f ./dir_all ./mlist
294    
295 jmc 1.36 #- put the file in place
296     chgrp gcmpack $OUTFILE
297     chmod 664 $OUTFILE
298     LATEST=$OUTDIR"/latest_"$PERIOD".html"
299     mv -f $OUTFILE $LATEST
300    
301 edhill 1.1 if test "x$PERIOD" = "x$CURR_PER" ; then
302 edhill 1.2 cp $LATEST ./testing.xml
303 edhill 1.1 (
304     cd $OUTDIR
305     rm -f latest.html
306     ln -s $LATEST latest.html
307     )
308     fi

  ViewVC Help
Powered by ViewVC 1.1.22