/[MITgcm]/MITgcm_contrib/test_scripts/nasa_ames/test_pleiades_fast2
ViewVC logotype

Annotation of /MITgcm_contrib/test_scripts/nasa_ames/test_pleiades_fast2

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


Revision 1.2 - (hide annotations) (download)
Thu Oct 19 14:33:32 2023 UTC (21 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +7 -1 lines
check testreport exit value before running restart test

1 jmc 1.1 #PBS -S /bin/bash
2     #PBS -N tst_fast2
3     #PBS -l select=1:ncpus=6:mpiprocs=6:model=san
4     #PBS -l walltime=12:00:00
5     #PBS -V
6     #PBS -e /u/jcampin/test_pleiades/output/tst_fast2.stderr
7     #PBS -o /u/jcampin/test_pleiades/output/tst_fast2.stdout
8    
9 jmc 1.2 # $Header: /u/gcmpack/MITgcm_contrib/test_scripts/nasa_ames/test_pleiades_fast2,v 1.1 2023/06/02 22:51:03 jmc Exp $
10 jmc 1.1 # $Name: $
11    
12     if test -f /etc/profile.d/modules.sh ; then
13     . /etc/profile.d/modules.sh
14     fi
15     # Note: added "ulimit -s unlimited" in file "~/.bashrc"
16     # to pass big test (the 2 fizhi-cs-* test & adjoint tests) with MPI
17    
18     umask 0022
19     #- to get case insensitive "ls" (and order of tested experiments)
20     export LC_ALL="en_US.UTF-8"
21     echo " running on: "`hostname`
22    
23     dNam='pleiades'
24     HERE="$HOME/test_$dNam"
25     SubD="$HERE/nasa_ames" ; OUTP="$HERE/output" ; SavD="$HERE/send"
26     SEND="ssh pfe $SavD/mpack"
27     ADDR='jm_c@mitgcm.org'
28     TST_DISK="/nobackupp17/jcampin"
29     TST_DIR="$TST_DISK/test_${dNam}"
30     #- where local copy of code is (need to be consistent with "test_submit_pleiades"):
31     srcDIR='.'
32     #srcDIR=$HERE
33     srcCode="MITgcm_today"
34    
35     echo "cd $TST_DISK ; pwd (x2)"
36     cd $TST_DISK ; pwd
37     if test ! -d $TST_DIR ; then
38     echo -n "Creating a working dir: $TST_DIR ..."
39     #/bin/rm -rf $TST_DIR
40     mkdir $TST_DIR
41     retVal=$?
42     if test "x$retVal" != x0 ; then
43     echo "Error: unable to make dir: $TST_DIR (err=$retVal ) --> Exit"
44     exit 1
45     fi
46     fi
47     echo "start from TST_DIR='$TST_DIR' at: "`date`
48     cd $TST_DIR ; pwd
49    
50     checkOut=2 ; dblTr=0 ; typ='' ; addExp='' ; skipExp=''
51     #sfx='ifc'
52     #sfx='ieee'; dblTr=1
53     #sfx='fast'; dblTr=1
54     #sfx='fast'; checkOut=2 ; dblTr=2 #- fast-1
55     sfx='fast'; checkOut=0 ; dblTr=1 #- fast-2
56     #addExp='global_ocean.gm_k3d global_ocean.gm_res'
57    
58     module purge
59     #- using older version of Intel Compiler:
60     #module load comp-intel/2016.2.181
61     #- using newer version of Intel Compiler:
62     module load comp-intel/2020.4.304
63     #- for MPI and NetCDF:
64     module load mpi-hpe/mpt.2.25
65     module load hdf4/4.2.12 hdf5/1.8.18_mpt netcdf/4.4.1.1_mpt
66     module list
67    
68     OPTFILE="../tools/build_options/linux_amd64_ifort+mpi_ice_nas"
69     options="$typ -MPI 6"
70     #options="-j 2 $options"
71     #mpiCMD='mpiexec_mpt -np TR_NPROC ./mitgcmuv'
72     #- need this to get "staf":
73     #export PATH="$PATH:$HOME/bin"
74    
75     dInWeek=`date +%a`
76     #if test "x$dInWeek" = xSun ; then options="$options -fast" ; fi
77     if test $sfx = 'fast' ; then options="$options -fast" ; fi
78    
79     #options="$options -nc" ; checkOut=1 ; dblTr=0
80     #options="$options -q" ; checkOut=0 ; dblTr=0
81    
82     #- keep a copy of MPI_MFILE:
83     #cp -p $PBS_NODEFILE $OUTP"/mf_"$sfx
84    
85     cmdCVS='cvs -d :pserver:cvsanon@mitgcm.org:/u/gcmpack -q'
86     gcmDIR="MITgcm_$sfx"
87    
88     if [ $checkOut -eq 1 ] ; then
89     if test -d $gcmDIR/CVS ; then
90     #- remove previous output tar files and tar & remove previous output-dir
91     /bin/rm -f $gcmDIR/verification/??_${dNam}-${sfx}_????????_?.tar.gz
92     ( cd $gcmDIR/verification
93     listD=`ls -1 -d ??_${dNam}-${sfx}_????????_? 2> /dev/null`
94     for dd in $listD
95     do
96     if test -d $dd ; then
97     tar -cf ${dd}".tar" $dd > /dev/null 2>&1 && gzip ${dd}".tar" && /bin/rm -rf $dd
98     retVal=$?
99     if test "x$retVal" != x0 ; then
100     echo "ERROR in tar+gzip prev outp-dir: $dd"
101     echo " on '"`hostname`"' (return val=$retVal) but continue"
102     fi
103     fi
104     done )
105     echo "clean tst_2+2 + testreport output (+ Makefile_syntax files)"
106     ( cd $gcmDIR/verification ; ../tools/do_tst_2+2 -clean )
107     ( cd $gcmDIR/verification ; ./testreport $typ -clean )
108     # ( cd $gcmDIR/verification ; rm -f */build/Makefile_syntax )
109     # ( cd $gcmDIR/verification ; rm -f */build/port_rand.i */build/ptracers_set_iolabel.i )
110     echo "cvs update of dir $gcmDIR :"
111     ( cd $gcmDIR ; $cmdCVS update -P -d ) 2>&1
112     retVal=$?
113     if test "x$retVal" != x0 ; then
114     echo "cvs update on '"`hostname`"' fail (return val=$retVal) => exit"
115     exit
116     fi
117     else
118     echo "no dir: $gcmDIR/CVS => try a fresh check-out"
119     checkOut=2
120     fi
121     fi
122     if [ $checkOut -eq 2 ] ; then
123     if test -e $gcmDIR ; then
124     echo -n "Removing working copy: $gcmDIR ..."
125     rm -rf $gcmDIR
126     echo " done"
127     fi
128     #echo "Downloading using '$cmdCVS co -P -d $gcmDIR MITgcm' ..."
129     #$cmdCVS co -P -d $gcmDIR MITgcm > /dev/null
130     #retVal=$?
131     #if test "x$retVal" != x0 ; then
132     # echo "cvs co on '"`hostname`"' fail (return val=$retVal) => exit"
133     # exit
134     #fi
135     #if test -d $gcmDIR/verification ; then
136     # /usr/bin/find $gcmDIR -type d | xargs chmod g+rxs
137     # /usr/bin/find $gcmDIR -type f | xargs chmod g+r
138     #fi
139     #- make a local copy (instead of using CVS):
140     today=`date +%Y%m%d`
141     nCount=0; updFile="${srcDIR}/updated_code"
142     updDate=0 ; test -f $updFile && updDate=`cat $updFile`
143     while [ $today -gt $updDate ] ; do
144     nCount=`expr $nCount + 1`
145     if [ $nCount -gt 40 ] ; then
146     echo " waiting too long (nCount=$nCount) for updated code"
147     echo " today=$today , updDate=$updDate "
148     ls -l $updFile
149     exit
150     fi
151     sleep 60
152     updDate=0 ; test -f $updFile && updDate=`cat $updFile`
153     done
154     ls -l $updFile
155     echo " waited nCount=$nCount for updated code ($updDate) to copy"
156     if test -d $srcDIR/$srcCode ; then
157     echo -n "Make local copy of dir '$srcDIR/$srcCode' to: $gcmDIR ..."
158     cp -pra $srcDIR/$srcCode $gcmDIR
159     echo " done"
160     else echo " dir: $srcDIR/$srcCode missing => exit" ; exit ; fi
161     fi
162    
163     #- change dir to $gcmDIR/verification dir:
164     if test -e $gcmDIR/verification ; then
165     if [ $checkOut -lt 2 ] ; then
166     echo " dir $gcmDIR/verification exist" ; fi
167     cd $gcmDIR/verification
168     #------------
169     for exp2add in $addExp ; do
170     if test -d ${exp2add}/CVS ; then
171     echo " assumes dir: $exp2add has been updated"
172     else
173     test -r $exp2add && /bin/rm -rf $exp2add
174     echo " add dir: $exp2add (from Contrib:verification_other)"
175     ( $cmdCVS co -P -d $exp2add \
176     MITgcm_contrib/verification_other/$exp2add > /dev/null )
177     if test $exp2add = 'global_oce_cs32' ; then
178     echo " link dir 'other_input/core2_cnyf' in here"
179     ( cd ${exp2add} ; ln -s ../../../other_input/core2_cnyf . )
180     fi
181     if test $exp2add = 'global_oce_llc90' ; then
182     echo " link dir 'other_input/gael_oce_llc90_input' to 'input_fields'"
183     ( cd ${exp2add} ; ln -s ../../../other_input/gael_oce_llc90_input input_fields )
184     echo " link dirs: 'core2_cnyf' & 'global_oce_input_fields/*' in input_verifs"
185     ( test ! -e ${exp2add}/input_verifs && mkdir ${exp2add}/input_verifs
186     cd ${exp2add}/input_verifs
187     ln -s ../../../../other_input/core2_cnyf .
188     ln -s ../../../../other_input/global_oce_input_fields/* . )
189     fi
190     /usr/bin/find $exp2add -type d | xargs chmod g+rxs
191     /usr/bin/find $exp2add -type f | xargs chmod g+r
192     fi
193     done
194     else
195     echo "no dir: $gcmDIR/verification => exit"
196     exit
197     fi
198    
199     if [ $dblTr -eq 2 ] ; then
200     LIST=`ls */results/output.txt | sed 's/\/results\/output.txt//'`
201     tstList=`echo $LIST | sed 's/tutorial_.*$//'`
202     else
203     LIST=`ls tutorial_*/results/output.txt | head -n 1 | sed 's/\/results\/output.txt//'`
204     tstList="start_from $LIST"
205     fi
206    
207     if [ $dblTr -ge 1 ] ; then
208     # echo ''
209     #- 0) just make all module header ( *__genmod.mod files) using modified Makefile
210     # echo ./testreport $options -of $OPTFILE -j 4 \
211     # -repl_mk do_make_syntax.sh -obj -dd
212     # ./testreport $options -of $OPTFILE -j 4 \
213     # -repl_mk do_make_syntax.sh -obj -dd 2>&1
214     # options="$options -q"
215    
216     echo ''
217     #- 1) just compile ("-nr"), using "-j 4" to speed up
218     echo ./testreport $options -of $OPTFILE -odir ${dNam}-$sfx -j 4 -nr -t "$tstList"
219     ./testreport $options -of $OPTFILE -odir ${dNam}-$sfx -j 4 -nr -t "$tstList"
220     nFc=`grep -c '^Y . N N ' tr_out.txt`
221     echo " <= fail to compile $nFc experiments"
222     options="$options -q"
223     if [ $dblTr -eq 2 ] ; then
224     echo -n "Submit second job:" $SubD/test_${dNam}_${sfx}2
225     qsub $SubD/test_${dNam}_${sfx}2
226     exit 0
227     fi
228     fi
229    
230     echo ''
231     echo ./testreport $options -of $OPTFILE -odir ${dNam}-$sfx \
232     -send \"$SEND\" -sd $SavD -a $ADDR
233     ./testreport $options -of $OPTFILE -odir ${dNam}-$sfx \
234     -send "$SEND" -sd $SavD -a $ADDR
235 jmc 1.2 retVal=$?
236 jmc 1.1
237 jmc 1.2 if test "x$retVal" != x0 ; then
238     echo "<== testreport returned retVal=${retVal}, expecting 0"
239     echo " -> skip restart test 'do_tst_2+2'"
240     else
241 jmc 1.1 echo ''
242     echo ../tools/do_tst_2+2 -mpi -o ${dNam}-$sfx \
243     -send \"$SEND\" -sd $SavD -a $ADDR
244     ../tools/do_tst_2+2 -mpi -o ${dNam}-$sfx \
245     -send "$SEND" -sd $SavD -a $ADDR
246 jmc 1.2 fi

  ViewVC Help
Powered by ViewVC 1.1.22