--- mitgcm.org/front_content/make_summary 2004/08/02 02:29:22 1.19
+++ mitgcm.org/front_content/make_summary 2019/08/19 16:02:07 1.84
@@ -1,241 +1,86 @@
#! /usr/bin/env bash
-# $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/front_content/make_summary,v 1.19 2004/08/02 02:29:22 edhill Exp $
+# $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/front_content/make_summary,v 1.84 2019/08/19 16:02:07 jmc Exp $
#
# The purpose of this script is to create HTML summaries of the
# directories produced by the "parse_emails" script.
-
usage()
{
echo
echo "Usage: $0 [OPTIONS]"
- echo
+ echo
echo "where possible OPTIONS are:"
echo " (-help|-h) print usage"
echo " (-date |-d )PERIOD run for PERIOD=\"YYYY_MM\""
echo " [def=\"$PERIOD\"]"
- echo
+ echo
exit 1
}
-old_summary()
-{
- # Create the old-style summary file for $PERIOD
- echo -n "Creating the summary file for the period \"$PERIOD\" ... "
- cat > $OUTFILE << EOF
-
-
-
-
- MITgcm testing summary
-
-
-
-
-
-
-EOF
-
- # all_files=`find $INDIR -name summary.txt`
- all_files=`( cd $INDIR ; find . -name summary.txt )`
-
- for f in $all_files ; do
-
- file=$INDIR"/"${f/.\//}
- grep "^fresults" $file > /dev/null 2>&1
- RETVAL=$?
- if test "x$RETVAL" != x0 ; then
- continue
- fi
-
- url=`echo $file | sed -e 's|/u/edhill/www|http://mitgcm.org/~edhill|'`
- url=`echo $url | sed -e 's|summary.txt||'`
- MACH=
- fresults=
- color="#eeeeee"
-
- source $file
- echo $fresults | grep FAIL > /dev/null 2>&1
- if test "x$?" = x0 ; then
- color="#ff99ff"
- fi
- echo $fresults | grep pass > /dev/null 2>&1
- if test "x$?" = x0 ; then
- color="#99ffff"
- fi
-
- gm_state=`echo $file | sed -e 's/summary.txt/genmake_state/g'`
- if test -r $gm_state ; then
- grep '^OPTFILE=' $gm_state > ./tmp_state
- source ./tmp_state
- else
- optfile="unknown"
- fi
- optfile=`echo $OPTFILE | awk -F '/' '{print $NF}'`
-
- echo "" >> $OUTFILE
- echo "$MACH | " >> $OUTFILE
- echo "$DATE | " >> $OUTFILE
- for i in $fresults ; do
- if test "x$i" = xN ; then
- echo -n "$i | " >> $OUTFILE
- else
- echo -n "$i | " >> $OUTFILE
- fi
- done
- echo "$optfile | " >> $OUTFILE
- echo "
" >> $OUTFILE
-
- done
-
- cat >> $OUTFILE << EOF
-
-
-
-
-EOF
-
- chmod a+r $OUTFILE
- echo "done"
-}
-
-
+export LC_ALL="en_US.UTF-8"
+CURR_PER=`date +%Y`"_"`date +%m`
# defaults
-PERIOD=`date +%Y`"_"`date +%m`
+PERIOD=$CURR_PER
# Parse options
ac_prev=
for ac_option ; do
-
+
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
fi
-
+
ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
+
case $ac_option in
-
+
-help | --help | -h | --h)
usage ;;
-
- -date | --date | -d | --d)
- ac_prev=PERIOD ;;
- --date=* | -date=*)
- PERIOD=$ac_optarg ;;
-
- *)
+
+ -date | --date | -d | --d)
+ ac_prev=PERIOD ;;
+ --date=* | -date=*)
+ PERIOD=$ac_optarg ;;
+
+ *)
echo "Error: don't understand argument \"$ac_option\""
usage
- ;;
-
+ ;;
+
esac
-
+
done
+#INDIR="/net/orwell/export/export-9/mitgcm-testing/results/$PERIOD"
+#OUTDIR="/home/jmc/mitgcm/test_web/summary"
INDIR="/u/u0/httpd/html/testing/results/$PERIOD"
OUTDIR="/u/u0/httpd/html/testing/summary"
-OUTFILE=$OUTDIR"/summary_"$PERIOD".html"
-# Create the "latest" links
+OUTFILE=$OUTDIR"/output_"$PERIOD".html"
+res_url="http://mitgcm.org/testing/"
+
+#TMP=./mksum_$$
+#- try to put temporary files in system-local /tmp dir
+TMP=/tmp/mksum_$$
+touch $TMP ; retVal=$?
+if [ $retVal -eq 0 ] ; then
+ if test ! -r $TMP ; then TMP=./mksum_$$ ; fi
+else
+ TMP=./mksum_$$
+fi
+rm -f $TMP
+# echo "temp files: $TMP"
+
+# Create the links in $OUTFILE :
echo "Creating the \"latest\" file for each machine: "
-LATEST=$OUTDIR"/latest_"$PERIOD".html"
the_date=`date`
-cat > $LATEST << EOF
-
-
-
-
- MITgcm testing summary
-
-
-
-
-
-
-
-
-
-
-
-
-
- The MITgcm model is tested
- (compiled and run) in an automated fashion on a varirety of
- different machines. The following is a summary of the MITgcm
- verification suite for the time period: $PERIOD.
-
- The machine naming scheme is:
-
- Machine Type | Nickname |
- Notes |
-
- Intel P4 | "faulks" |
- Fedora Core 1 [formerly Red Hat 7.3] |
- Intel P4 | "hemmingway" |
- Fedora Core 1 (gcc 3.3.2) |
-
- Intel P3/P4 Beowulf | "myrinet" |
- MITgcm cluster
- facility |
- Alpha cluster | "halem" |
-
- NASA NCCS Halem |
-
- SGI Origin 2000 | "hopper" |
-
- NAS SGI Origin 2000 |
- SGI Origin 3000 | "lomax"/"turing" |
-
- NAS SGI Origin 3000 |
-
-
- SGI Altix 350 | "altix350" |
- MIT ACESgrid
- GeoCluster |
- IBM POWER3 SP | "bf" |
- NCAR Blackforest
- |
-
- IBM POWER4 SP | "bs" |
- NCAR Bluesky
- |
- AMD Opteron | "adams" |
- RHEL v3 (AMD64) |
-
- Sun UltraSparc | "slough" |
- Solaris 8 |
- Intel P4 Mosix Cluster | "sea" |
- Red Hat v7.2 |
-
- AMD Athlon XP 2500+ | "eddy" |
- Fedora Core 2 (Red Hat gcc 3.3.3) |
- AMD Opteron cluster | "dolphin" |
- SuSE SLES v8.1 |
-
-
-
-
-
- The complete output for the verification runs can be found in
- the summary pages
- and the testing archives.
- The latest reports are:
+sed "s/_PERIOD/$PERIOD/" summary_head > $OUTFILE
+cat <>$OUTFILE
Nickname |
@@ -250,19 +95,31 @@
color="#bbffdd"
ncolor="#bbddff"
-res_url="http://mitgcm.org/testing/"
-MACHINES="faulks shelley myrinet eaps halem hopper lomax turing orion bf bs slough sea"
-MACHINES="$MACHINES eddy adams dolphin hemmingway altix350"
+MACHINES="aces- acesgrid baudelaire engaging svante glacier uv100 ollie stan1"
+MACHINES="$MACHINES pleiades archer stomp octopus saramago"
-( cd $INDIR ; ls -1 -t ) > ./dir_all
+( cd $INDIR ; ls -1 -t */summary.txt | sed 's/\/summary.txt//' ) > $TMP.dir_all
+
+MALL=`cat $TMP.dir_all | sed -e 's|_| |g' | awk '{print $2}' | sort | uniq`
+for madd in $MALL ; do
+ present=0
+ for m in $MACHINES ; do
+ echo $madd | grep $m > /dev/null 2>&1
+ RETVAL=$?
+ test $RETVAL = 0 && present=1
+ continue
+ done
+ test $present = 0 && MACHINES="$MACHINES $madd"
+done
+#MACHINES="baudelaire"
for mname in $MACHINES ; do
echo " $mname"
- dir_list=`grep $mname ./dir_all`
- echo -n "" > ./mlist
+ dir_list=`grep $mname $TMP.dir_all`
+ echo -n "" > $TMP.mlist
for i in $dir_list ; do
@@ -279,7 +136,7 @@
OPTFILE=${OPTFILE##*/}
fi
if test "x$OPTFILE" = x ; then
- comm=`grep '^# OPTFILE=' $dir/*/Makefile 2>/dev/null | head -1`
+ comm=`grep '^# OPTFILE=' $dir/*/Makefile* 2>/dev/null | head -1`
comm=${comm##*#}
eval $comm
OPTFILE=${OPTFILE##*/}
@@ -288,41 +145,102 @@
OPTFILE="not_explicitly_specified"
fi
- ADJOINT=
+ # EXTRA = non-standard list of experiment
+ ADJOINT=0
+ TANGLIN=0
+ OPENAD=0
+ RESTART=0
+ EXTRA=
+ FAST=0
+ DVLP=0
+ MPI=0
+ MTH=0
+ UR4=0
if test -r $dir/summary.txt ; then
- comm=`grep 'ADJOINT=true' $dir/summary.txt 2>/dev/null`
- eval $comm
+ ADJOINT=`grep -c -i '^ADJOINT' $dir/summary.txt`
+ if test "x$ADJOINT" = x1 ; then
+ OPENAD=`grep -c '^Adjoint .* OpenAD' $dir/summary.txt`
+ fi
+ TANGLIN=`grep -c -i '^TANGLIN' $dir/summary.txt`
+ if test "x$TANGLIN" = x1 ; then
+ OPENAD=`grep -c '^TangLin .* OpenAD' $dir/summary.txt`
+ fi
+ RESTART=`grep -c 'test 2+2=4 summary' $dir/summary.txt`
+ comm=`grep '^run: .*testreport.* ' $dir/summary.txt`
+ EXTRA=`echo "$comm" | grep " -*-tdir\>" | sed -e "s/^.* -*-tdir\>//" -e "s/ -.*$//"`
+ if test "x$EXTRA" = x ; then
+ EXTRA=`echo "$comm" | grep " -*-t\>" | sed -e "s/^.*-*-t\>//" -e "s/ -.*$//"`
+ fi
+ if test "x$EXTRA" = x ; then EXTRA=0 ; else
+ #echo -n "EXTRA=$EXTRA"
+ nn0=`echo $EXTRA | sed "s/ *' *//g" | wc -w`
+ nn1=`echo $EXTRA | sed "s/ *' *//g" | tr ' ' '\n' | grep -c "\"`
+ if test "x$FAST" = x0 ; then
+ FAST=`echo "$comm" | grep -c " '*-noieee'*"`
+ fi
+ DVLP=`echo "$comm" | grep -c " -*-devel\>"`
+ MPI=`echo "$comm" | grep -c " -*-mpi\>"`
+ if test "x$MPI" = x0 ; then
+ MPI=`echo "$comm" | grep -c " -*-MPI\>"`
+ fi
+ MTH=`echo "$comm" | grep -c " -*-mth\>"`
+ UR4=`echo "$comm" | grep -c " -*-use_r4\>"`
+ if test "x$UR4" = x0 ; then
+ UR4=`echo "$comm" | grep -c " -*-ur4\>"`
+ fi
fi
- if test "x$ADJOINT" = x ; then
- kind="forward"
+ if test "x$ADJOINT" = x1 ; then
+ kind="adjoint-taf" ; order=0
+ if test "x$OPENAD" = x1 ; then
+ kind="adjoint-oad" ; order=2
+ fi
+ elif test "x$TANGLIN" = x1 ; then
+ kind="tanglin-taf" ; order=1
+ if test "x$OPENAD" = x1 ; then
+ kind="tanglin-oad" ; order=3
+ fi
+ elif test "x$RESTART" = x0 ; then
+ kind="forward" ; order=4
else
- test "x$ADJOINT" = xtrue && kind="adjoint"
+ kind="restart" ; order=5
+ fi
+ if test "x$UR4" = x1 ; then
+ OPTFILE="${OPTFILE}.use_r4"
+ fi
+ if test "x$MPI" = x1 ; then
+ yy=`echo $OPTFILE | grep -c '+mpi'`
+ if test $yy = 0 ; then yy=`echo $OPTFILE | grep -c '+impi'` ; fi
+ if test $yy = 0 ; then OPTFILE="${OPTFILE}+mpi"
+ else order=`expr $order + 200` ; fi
fi
+ if test "x$MTH" = x1 ; then
+ yy=`echo $OPTFILE | grep -c '+mth$'`
+ if test $yy = 0 ; then OPTFILE="${OPTFILE}+mth" ; fi
+ fi
+ if test "x$FAST" = x1 ; then
+ OPTFILE="${OPTFILE}.fast"
+ fi
+ if test "x$DVLP" = x1 ; then
+ OPTFILE="${OPTFILE}.dvlp"
+ fi
+ order=`expr $order + 10 \* $EXTRA`
+ order=`printf '%3.3i' $order`
t_pass="--"
t_tot="--"
if test -r $dir/summary.txt ; then
- grep '^[YN] [YN] [YN] [YN] ' $dir/summary.txt > ./all_tests 2>/dev/null
+ grep '^[YN] [YN] [YN] [YN]' $dir/summary.txt > ./all_tests 2>/dev/null
t_tot=`cat ./all_tests | wc -l | sed -e 's| ||g'`
- grep '^Y Y Y Y ' ./all_tests > ./all_ran 2>/dev/null
- grep advect_ ./all_ran 2>/dev/null > ./all_ran_advect
- t_advect=`cat ./all_ran_advect | wc -l | sed -e 's| ||g'`
- digits=`cat ./all_ran_advect | awk '{print $9}'`
- t_advect_pass=0
- for k in $digits ; do
- test "x$k" = x-- && k=0
- test $k -ge 9 && t_advect_pass=$(( $t_advect_pass + 1 ))
- done
- grep -v advect ./all_ran 2>/dev/null > ./all_ran_noadvect
- digits=`cat ./all_ran_noadvect | awk '{print $5}'`
- t_sum=0
- for k in $digits ; do
- test "x$k" = x-- && k=0
- test $k -ge 9 && t_sum=$(( $t_sum + 1 ))
- done
- t_pass=$(( $t_sum + $t_advect_pass ))
+ t_pass=`grep '^Y Y Y Y' ./all_tests | grep 'pass ' | wc -l | sed -e 's| ||g'`
fi
- rm -f ./all_tests ./all_ran ./all_ran_advect ./all_ran_noadvect
+ rm -f ./all_tests
# echo "${dir##*/} : $t_pass out of $t_tot"
tokens=`echo $i | sed -e 's|_| |g'`
@@ -330,38 +248,43 @@
for tok in $tokens ; do
echo $tok >> ./ms_tmp
done
- DAY=`cat ./ms_tmp | awk '(length($1)==8 && substr($1,0,3)=="200")'`
+ DAY=`cat ./ms_tmp | awk '(length($1)==8 && substr($1,0,2)=="20")'`
rm -f ./ms_tmp
- echo "$OPTFILE$kind $DAY $OPTFILE $kind $i $t_pass:$t_tot" >> ./mlist
+ echo "$OPTFILE$order $DAY $OPTFILE $kind $i $t_pass:$t_tot" >> $TMP.mlist
done
# helpful for debugging
- # cat ./mlist
+ # cat $TMP.mlist
# Do we have any data? If so, create the latest pointer.
- num=`wc -l ./mlist | awk '{print $1}'`
+ num=`wc -l $TMP.mlist | awk '{print $1}'`
if test $num -gt 0 ; then
# swap colors
- ctmp=$color
- color=$ncolor
- ncolor=$ctmp
+ ctmp=$color
+ color=$ncolor
+ ncolor=$ctmp
- keys=`cat ./mlist | cut -d " " -f 1 | sort | uniq`
+ keys=`cat $TMP.mlist | cut -d " " -f 1 | sort | uniq`
for key in $keys ; do
- tline=`grep "^$key " ./mlist | head -1`
+ tline=`grep "^$key " $TMP.mlist | head -1`
ratio=`echo $tline | cut -d " " -f 6`
ldir=`echo $tline | cut -d " " -f 5`
kind=`echo $tline | cut -d " " -f 4`
optf=`echo $tline | cut -d " " -f 3`
DAY=`echo $tline | cut -d " " -f 2`
URL="results/$PERIOD/$ldir"
- cat <>$LATEST
+ #-- machine name to print:
+ sname=`echo $mname | sed 's/-$//'`
+ alt=`echo $key | sed "s/$optf//"`
+ #if [ $alt -ge 30 ] ; then sname="${sname}.darwin"
+ #elif [ $alt -ge 20 ] ; then sname="${sname}.monod" ; fi
+ cat <>$OUTFILE
- $mname |
+ $sname |
$optf |
$kind |
$DAY |
@@ -374,27 +297,30 @@
done
-cat >> $LATEST << EOF
+cat >> $OUTFILE << EOF
This table generated on: $the_date |
-Examples of the scripts used for these testing runs can be obtained
-from
-the "contrib" area of the MITgcm CVS archive.
-
+Examples of the scripts used for these testing runs can be obtained from:
+MITgcm_contrib/test_scripts.
EOF
-rm -f ./dir_all ./mlist
+rm -f $TMP.dir_all $TMP.mlist
+
+#- put the file in place
+chgrp gcmpack $OUTFILE
+chmod 664 $OUTFILE
+LATEST=$OUTDIR"/latest_"$PERIOD".html"
+mv -f $OUTFILE $LATEST
-CURR_PER=`date +%Y`"_"`date +%m`
if test "x$PERIOD" = "x$CURR_PER" ; then
cp $LATEST ./testing.xml
(