--- MITgcm/verification/testreport 2009/01/29 21:45:43 1.120 +++ MITgcm/verification/testreport 2009/04/16 18:46:59 1.123 @@ -1,6 +1,6 @@ #! /usr/bin/env bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.120 2009/01/29 21:45:43 utke Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.123 2009/04/16 18:46:59 jmc Exp $ # $Name: $ # @@ -11,7 +11,7 @@ echo echo "where possible OPTIONS are:" echo " (-help|-h) print usage" - echo " (-mth) run multi threaded (using eedata.mth)" + echo " (-mth) run multi-threaded (using eedata.mth)" echo " (-mpi) compile and run using MPI" echo " (-ieee|-noieee) if possible, use IEEE compiler flags" echo " (DEF=\"-ieee\")" @@ -334,6 +334,10 @@ if test "x$MPI" = xt ; then command="$command -mpi" fi + if test "x$MULTI_THREAD" = xt ; then + #- run multi-threaded using OpenMP: + command="$command -omp" + fi if test "x$TS" = xt ; then command="$command -ts" fi @@ -718,6 +722,35 @@ } +check_eedata() +{ + # check_eedata size.h eedata + if [ $# -eq 2 ] ; then + if test -f $1 -a -f $2 ; then + sx=`grep "^ & *nSx *=" $1 | sed "s/^ & *nSx *=//" | sed 's/, *$//'` + nx=`grep "^ *nTx *=" $2 | tail -1 | sed 's/^ *nTx *= *//' | sed "s/, *$//"` + if test "x$nx" = x ; then + rx=10 + else + rx=`expr $sx % $nx` + fi + sy=`grep "^ & *nSy *=" $1 | sed "s/^ & *nSy *=//" | sed 's/, *$//'` + ny=`grep "^ *nTy *=" $2 | tail -1 | sed 's/^ *nTy *= *//' | sed "s/, *$//"` + if test "x$ny" = x ; then + ry=20 + else + ry=`expr $sy % $ny` + fi + echo `expr $rx + $ry` + else + echo '-1' + fi + else + echo '-2' + fi + +} + ############################################################################### @@ -1014,6 +1047,9 @@ BASE="tr_"$MACH"_"$DATE"_" if test "x$OUTDIR" != x ; then BASE="tr_"$OUTDIR"_"$DATE"_" +else + short_name=`hostname | sed 's/\..*$//'` + BASE="tr_"$short_name"_"$DATE"_" fi DNUM=0 DRESULTS="$BASE$DNUM" @@ -1147,6 +1183,13 @@ echo "can't find \"$dir/input/eedata.mth\" -- skipping $dir" continue fi + if test "x$MPI" = "xt" -a "x$MULTI_THREAD" = "xt" ; then + retv=`check_eedata $CODE_DIR"/SIZE.h_mpi" $dir"/input/eedata.mth"` + if test $retv != 0 ; then + echo "input/eedata.mth tiling misfit -- skipping $dir" + continue + fi + fi # Check whether there are "extra runs" for this testdir extra_runs= @@ -1157,14 +1200,23 @@ refExOut=`echo $ref_outp | sed "s/\./.${name}./"` outf="$dir/results/$refExOut" if test -f $outf -a -r $outf ; then - if test "x$MULTI_THREAD" = "xt" ; then - if test -r $dir"/"$exd"/eedata.mth" ; then + if test "x$MULTI_THREAD" = "xt" ; then + if test -r $dir"/"$exd"/eedata.mth" ; then + if test "x$MPI" = "xt" ; then + retv=`check_eedata $CODE_DIR"/SIZE.h_mpi" $dir"/"$exd"/eedata.mth"` + if test $retv = 0 ; then extra_runs="$extra_runs $name" - #else echo $dir"/"$exd"/eedata.mth: not found" + else + echo $exd"/eedata.mth tiling misfit -- skipping $dir" fi - else + else extra_runs="$extra_runs $name" + fi + #else echo $dir"/"$exd"/eedata.mth: not found" fi + else + extra_runs="$extra_runs $name" + fi fi done