Changeset 4097
- Timestamp:
- Mar 14, 2022, 6:31:34 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BOL/script_install/check_version.sh
r4079 r4097 1 1 #!/bin/bash 2 2 # $Id$ 3 4 #set -vx 3 5 4 6 ######################################################################### … … 8 10 ######################################################################### 9 11 10 11 12 version_ref=latest 12 resolution=48x36x19 13 resolution=48x36x39 #20160622 : nouveau bench avec deux versions de la physique 13 resolution=48x36x39 14 14 compilo=gfortran 15 parallel=none16 15 parallel=mpi_omp 17 justcheck=0 # just compare results not writing of results in RESUBENCH18 tmpdir=/tmp/`whoami` ; mkdir -p $tmpdir19 20 if [ `whoami` = lmdz ] ; then21 get="ln -sf /u/lmdz/WWW/pub"22 getold="ln -sf /u/lmdz/WWW/Distrib"23 else24 get="wget https://www.lmd.jussieu.fr/~lmdz/pub"25 getold="wget https://www.lmd.jussieu.fr/~lmdz/Distrib"26 fi27 28 if [ `hostname` != cameron.lmd.jussieu.fr ] ; then29 echo Machine non prevu30 fi31 32 33 16 # Option pour le debug du script check_version lui meme qui consiste a ne 34 17 # pars reexecuter l'installation et les simulations mais a simplement 35 18 # refaire les diff sur des simulations existantes. 36 diagonly=0 37 38 19 justcheck=0 # just compare results not writing of results in RESUBENCH 20 tmpdir=/tmp/`whoami` ; mkdir -p $tmpdir 21 rel_svn="" 22 local_d=`pwd` 23 24 install=1 25 check_1D=1 26 check_SP=1 27 check_1p1=1 28 check_Debug=1 29 check_isotopes=1 30 check_parallel=1 31 check_compile=1 32 check_ini=1 33 mail_address=lmdz-commit@listes.lmd.ipsl.fr 34 MODEL="" 35 branche=trunk 36 37 ######################################################################### 38 # Pour aller chercher des fichiers par wget si pas sur le cpte lmdz 39 ######################################################################### 40 41 if [ `whoami` = lmdz ] ; then 42 get="ln -sf /u/lmdz/WWW" 43 else 44 get="wget https://www.lmd.jussieu.fr/~lmdz" 45 fi 46 47 ######################################################################### 48 # Options du script 49 ######################################################################### 39 50 40 51 while (($# > 0)) … … 47 58 Default "latest". 48 59 options: 49 -c sets the compiler to use 50 -j just check results, do not overwrite anything 0/1 60 -c compiler : sets the compiler to use 61 -j 0/1 : just check results, do not overwrite anything 0/1 62 -r svn : revision 63 -latest latest : latest is the date of the last version tested 64 -model_dir : directory where tun run the bench if LMDZ is already installed 51 65 fin 52 66 exit;; 53 67 54 "-c") 55 compilo="$2" ; shift ; shift ;;56 "- j")57 justcheck="$2" ; shift ; shift ;;58 *)59 version="$1" ; shift ; if [ "$#" = 1 ] ; then version_ref=$1 ; shift ; fi;;68 "-c") compilo="$2" ; shift ; shift ;; 69 "-j") justcheck="$2" ; shift ; shift ;; 70 "-r") rel_svn="$2" ; shift ; shift ;; 71 "-latest") version_ref="$2" ; shift ; shift ;; 72 "-model_dir") MODEL="$2" ; shift ; shift ;; 73 *) version="$1" ; shift ;; 60 74 esac 61 75 done 62 76 77 ################################################################################ 78 # Definition des noms des repertoires à comparer 79 ################################################################################ 63 80 64 81 # branche=`echo $version | cut -d. -f2` 65 branche=`echo $version |cut -c 10-` 66 datelmdz=`echo $version | cut -d. -f1` 82 if [ "$MODEL" = "" ] ; then 83 MODEL=$tmpdir/LMDZ$version$rel_svn 84 branche=`echo $version |cut -c 10-` 85 datelmdz=`echo $version | cut -d. -f1` 86 else 87 if [ $install = 1 ] ; then echo Use model_dir only if the model is already installed ; exit ; fi 88 datelmdz=`date +%Y%m%d`$$ 89 fi 90 67 91 echo version $version $branche $datelmdz 68 69 RESU_D=~/WWW/RESUBENCH/$branche/$compilo 70 mkdir -p $RESU_D 71 resubench=$RESU_D/$datelmdz 92 if [ $justcheck = 0 ] ; then 93 RESU_D=~/WWW/RESUBENCH/$branche/$compilo 94 resubench=$RESU_D/$datelmdz$rel_svn 95 mkdir -p $resubench 96 fi 72 97 latest=$RESU_D/$version_ref 73 echo version_ref $version_ref $latest74 ls -l $latest75 98 76 99 # recuperation de la version a laquelle on compare pour le message final : 77 100 comparea=`ls -ld $RESU_D/$version_ref | awk -F/ ' { print $NF } '` 78 79 # LANCEMENT D UN CERTAIN NOMBRE DE TESTS 80 101 echo comparea $comparea 102 103 ################################################################################ 104 echo 0. Installation du modele 105 ################################################################################ 81 106 82 107 # Edition de install.sh, install.sh avec bench 48x36x19 83 cd $tmpdir 84 MODEL=$tmpdir/LMDZ$version 85 if [ $diagonly = 0 ] ; then 86 \rm -f install_lmdz.sh ; $get/install_lmdz.sh ; chmod +x install_lmdz.sh 87 ./install_lmdz.sh -v $version -d $resolution -SCM -parallel $parallel -veget CMIP6 88 fi 89 90 ###################################################### 91 # Sauvegarde du 1D 92 ###################################################### 93 outf=$MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc 94 if [ -f $outf ] ; then 95 if [ $justcheck = 0 ] ; then 96 mkdir -p $resubench/ARMCU/REF 97 cp $MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc $resubench/ARMCU/REF/ 98 fi 99 # cmp -s $resubench/ARMCU/REF/restartphy.nc $latest/ARMCU/REF/restartphy.nc 100 cmp -s $MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc $latest/ARMCU/REF/restartphy.nc 101 if [ $? = 0 ] ; then converge1D=U ; else converge1D=u ; fi 102 else 103 converge1D=- 104 fi 105 106 107 ###################################################### 108 if [ $install = 1 ] ; then 109 cd $tmpdir 110 if [ "$rel_svn" = "" ] ; then opt_svn="" ; else opt_svn="-r $rel_svn" ; fi 111 \rm -f install_lmdz.sh ; $get/pub/install_lmdz.sh ; chmod +x install_lmdz.sh 112 # On install sans les bench pour que les benchs soient faits à la main 113 # ./install_lmdz.sh -v $version $opt_svn -d $resolution -SCM -parallel $parallel -veget CMIP6 114 ./install_lmdz.sh -v $version $opt_svn -d $resolution -parallel $parallel -veget CMIP6 -bench 0 115 fi 116 117 ################################################################################ 118 echo 1. Sauvegarde du 1D execute automatiquement a l installation 119 ################################################################################ 120 121 if [ $check_1D = 1 ] ; then 122 cd $MODEL 123 if [ ! -d 1D ] ; then $get/pub/1D/1D.tar.gz ; tar xvf 1D.tar.gz ; fi # get 1D model 124 cd 1D ; sed -e "s:^listecas=.*$:listecas=ARMCU/REF:" run.sh ; ./run.sh # run 1D model 125 # Controling outputs for the ARMCU/REF test case 126 outf=$MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc 127 if [ -f $outf ] ; then 128 if [ $justcheck = 0 ] ; then 129 mkdir -p $resubench/ARMCU/REF 130 cp $MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc $resubench/ARMCU/REF/ 131 fi 132 # cmp -s $resubench/ARMCU/REF/restartphy.nc $latest/ARMCU/REF/restartphy.nc 133 cmp -s $MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc $latest/ARMCU/REF/restartphy.nc 134 if [ $? = 0 ] ; then converge1D=U ; else converge1D=u ; fi 135 else 136 converge1D=- 137 fi 138 fi 139 140 141 ################################################################################ 142 echo DEBUT DES TESTS 3D 143 ################################################################################ 108 144 BENCH=BENCH$resolution 109 cd $MODEL/modipsl/mod*/LMD* /$BENCH110 echo BENCH FINI 111 ls -lrt 112 pwd 113 114 115 145 cd $MODEL/modipsl/mod*/LMD* 146 LMDZdir=`pwd` 147 if [ -d $BENCH ] ; then mkdir -p SAVE$$ ; mv BENCH$resolution SAVE$$ ; fi 148 $get/pub/3DBenchs/bench_lmdz_$resolution.tar.gz ; tar xvf bench_lmdz_$resolution.tar.gz 149 cd $BENCH ; $get/pub/3DBenchs/BENCHCMIP6.tar.gz . ; tar xvf BENCHCMIP6.tar.gz 150 sed -i'' -e "s:VEGET=n:VEGET=y:" config.def 151 ./compilegcm_fcm.sh ; ./bench.sh > out.bench 2>&1 116 152 117 153 118 154 if [ -f restartphy.nc ] ; then 119 ######################################################################### 120 echo Verification de la convergence avec la version precedente 121 ######################################################################### 122 # Faite soit sur les restart.nc soit sur une exctraction de ps.nc 123 # A une epoque, ne marchait paps avec les restart a cause des traceurs. 124 # Le 2014/01/30, ne marchait plus avec ps.nc car les axes de lattiudes 125 # s'étaient inversés pour une raison inconnue. 126 # 2016/06/21 : on utilise deux versions de la physique pour le test. 127 128 # Aide a l'interpretation de resultats problematiques 129 # Les resultats de la simu ancienne physique sont directement 130 # dans BENC* 131 # Les resultats de la nouvelle physique sont dans SIM1 utilise 132 # pour 1+1=2 133 # Les resultats de la simulation debug sont dans SIMD 134 155 if [ ! -f gcm.install ] ; then \cp -f gcm.e gcm.install ; fi 156 157 ######################################################################### 158 echo 3. Verification de la convergence avec la version precedente 159 echo Physique Standard 160 ######################################################################### 161 162 # Faite soit sur les restart.nc soit sur une exctraction de ps.nc 163 # Il est arrive qu'on ait convergence meteo sans identite des restart 164 # (pb d'entete, de traceurs ...) 165 # Aide a l'interpretation de resultats problematiques 166 # Les resultats de la simu ancienne physique sont directement 167 # dans BENC* 168 # Les resultats de la nouvelle physique sont dans SIM1 utilise 169 # pour 1+1=2 170 # Les resultats de la simulation debug sont dans SIMD 171 172 # Ici on se contente d'analyser le bench automatique qui vient de tourner 135 173 if [ $justcheck = 0 ] ; then mkdir -p $resubench/$BENCH; fi 136 174 if [ -f restartphy.nc ] ; then 137 175 if [ $justcheck = 0 ] ; then 138 139 176 ncks -M -m -h -v ps -O restart.nc $resubench/$BENCH/ps.nc 177 cp restart.nc $resubench/$BENCH/restart.nc 140 178 fi 141 # cmp -s $resubench/$BENCH/restart.nc $latest/$BENCH/restart.nc142 179 cmp -s ./restart.nc $latest/$BENCH/restart.nc 143 180 if [ $? = 0 ] ; then converge=S ; else converge=s ; fi … … 146 183 fi 147 184 148 ######################################################################### 149 echo Verification de 1+1=2 150 ######################################################################### 151 # 2016/06/21 : 1+1=2 est fait sur la nouvelle physique 152 # Permet de tester aussi la convergence numérique 153 154 suf=NPv5.5 155 suf=NPv6.0.14splith 156 # cp -f config.def_oraer config.def 157 sed -e 's/VEGET=y/VEGET=n/' config.def_oraer > config.def 158 if [ -f physiq.def_$suf ] ; then \cp -f physiq.def_$suf physiq.def ; fi 159 if [ $diagonly = 0 ] ; then 160 $getold/unpun.sh 161 chmod +x unpun.sh ; ./unpun.sh -parallel $parallel 162 fi 163 cmp -s SIM2/ps_end.nc SIM1+1/ps_end.nc 164 if [ $? = 0 ] ; then 165 unpun=OK 166 else 167 unpun=- 168 fi 169 170 ######################################################################### 171 echo Test en fonction du nombre de processeurs 172 ######################################################################### 173 if [ "$parallel" == "mpi_omp" ] ; then 174 mkdir SIM1_41 175 cd SIM1_41 185 ######################################################################### 186 echo 4. Verification de 1+1=2 187 echo Avec la nouvelle physique 188 ######################################################################### 189 # On utilse l'executable du bench de base 190 191 if [ $check_1p1 = 1 ] ; then 192 \cp -f gcm.install gcm.e 193 suf=NPv6.0.14splith 194 sed -e 's/VEGET=y/VEGET=n/' config.def_oraer > config.def 195 if [ -f physiq.def_$suf ] ; then \cp -f physiq.def_$suf physiq.def ; fi 196 $get/Distrib/unpun.sh 197 chmod +x unpun.sh ; ./unpun.sh -parallel $parallel 198 cmp -s SIM2/ps_end.nc SIM1+1/ps_end.nc 199 if [ $? = 0 ] ; then 200 unpun=OK 201 else 202 unpun=- 203 fi 204 fi 205 206 ######################################################################### 207 echo 5. Test en fonction du nombre de processeurs 208 ######################################################################### 209 210 echo CHECK $parallel $check_parallel 211 if [ "$parallel" = "mpi_omp" -a $check_parallel = 1 ] ; then 212 mkdir -p $LMDZdir/$BENCH/SIM1_41 213 cd $LMDZdir/$BENCH/SIM1_41 176 214 ln -s ../SIM1/start* ../SIM1/limit* ../SIM1/sechiba_rest_in.nc ../SIM1/aer*nc ../SIM1/*def . 177 ../run_local.sh 4 1 ../gcm. e> listing215 ../run_local.sh 4 1 ../gcm.install > listing 178 216 cd .. 217 echo ON EST AVANT LE CMP 179 218 cmp -s SIM1/restart.nc SIM1_41/restart.nc 219 echo resultat $? 180 220 if [ $? = 0 ] ; then 181 221 if [ "$unpun" = "OK" ] ; then … … 190 230 191 231 # 2016/06/21 : comparaison des versions nouvelles physique (dans SIM1) 192 # if [ -f restartphy.nc ] ; then Correction 2017/04/26 232 cd $LMDZdir/$BENCH 193 233 if [ -f SIM1/restartphy.nc ] ; then 194 234 if [ $justcheck = 0 ] ; then 195 196 235 ncks -M -m -h -v ps -O SIM1/restart.nc $resubench/$BENCH/ps$suf.nc 236 cp SIM1/restart.nc $resubench/$BENCH/restart$suf.nc 197 237 fi 198 238 \rm sechiba_out_2.nc sechiba_history.nc sechiba_rest_out.nc 199 # cmp -s $resubench/$BENCH/restart$suf.nc $latest/$BENCH/restart$suf.nc200 239 cmp -s SIM1/restart.nc $latest/$BENCH/restart$suf.nc 201 240 if [ $? = 0 ] ; then convergeNP=N ; else convergeNP=n ; fi … … 204 243 fi 205 244 206 ######################################################################### 207 echo Verification en mode debug + parallele 208 ######################################################################### 209 if [ -f compilegcm.sh ] ; then 210 mv gcm.e gcm.install 245 ######################################################################### 246 echo Verification en mode debug + parallele, compile avec makelmdz 247 ######################################################################### 248 249 cd $LMDZdir/$BENCH 250 if [ -f compilegcm.sh -a $check_compile = 1 ] ; then 251 \rm -f gcm.e 211 252 ./compilegcm.sh -debug 212 253 mkdir SIMD … … 217 258 suf=D 218 259 if [ -f SIMD/restartphy.nc ] ; then 219 260 if [ $justcheck = 0 ] ; then 220 261 ncks -M -m -h -v ps -O SIMD/restart.nc $resubench/$BENCH/ps$suf.nc 221 262 cp SIMD/restart.nc $resubench/$BENCH/restart$suf.nc 222 263 fi 223 264 cmp -s SIMD/restart.nc $latest/$BENCH/restart$suf.nc 224 265 if [ $? = 0 ] ; then convergeD=D ; else convergeD=d ; fi … … 227 268 fi 228 269 fi 229 ######################################################################### 230 echo Verification des isotopes 231 ######################################################################### 232 cd .. 233 ./makelmdz_fcm -arch local -j 8 -rrtm true -d 48x36x39 -v false -p lmdiso -isotopes true -isoverif true -debug gcm 234 if [ -f ./bin/gcm_48x36x39_phylmdiso_seq_iso_isoverif.e ] ; then 235 cd $BENCH 236 mkdir ISO 237 cp ../bin/gcm_48x36x39_phylmdiso_seq_iso_isoverif.e ISO/gcm_iso.e 238 cd ISO 239 ln -s ../SIM1/start* ../SIM1/limit* ../SIM1/aer*nc . 240 cp ../SIM1/physiq.def ../SIM1/gcm.def ../SIM1/vert.def . 241 for def in gcm run config traceur physiq 242 do 243 cp ../${def}_iso.def ${def}.def 244 done 245 cp ../iso.def . 246 ./gcm_iso.e > listing 2>&1 247 cd .. 248 suf=I 249 if [ -f ISO/restartphy.nc ] ; then 250 if [ $justcheck = 0 ] ; then 251 cp ISO/restart.nc $resubench/$BENCH/restart$suf.nc 252 fi 253 cmp -s ISO/restart.nc $latest/$BENCH/restart$suf.nc 254 if [ $? = 0 ] ; then convergeI=I ; else convergeI=i ; fi 255 else 256 # compiled but failed the isoverif test 257 convergeI=x 258 fi 259 else 260 # compilation failed; cleaning up for next compilation 261 convergeI=- 262 \rm -f libf/grid/dimensions.h 263 \rm -f .lock 264 fi 265 266 ######################################################################### 267 echo Verification de initialisation 268 ###############################################################y########## 269 cd $BENCH 270 rm -rf ../INIT 271 mkdir ../INIT 272 cp *def ../INIT 273 cd ../INIT 274 pwd 275 $getold/initialisation.sh 276 sed -e 's/grid_resolution=48x36x39/grid_resolution='$resolution'/' initialisation.sh > ini.sh 277 chmod +x ini.sh ; ./ini.sh 278 if [ -f limit.nc ] ; then 279 var=Tsoil01srf01 280 if [ $justcheck = 0 ] ; then 281 mkdir -p $resubench/START$resolution 282 ncks -M -m -h -v $var startphy.nc -O $resubench/START$resolution/$var.nc 283 cp startphy.nc $resubench/START$resolution/ 270 271 ######################################################################### 272 echo Verification des isotopes 273 ######################################################################### 274 275 if [ $check_isotopes = 1 ] ; then 276 cd $LMDZdir 277 pwd 278 $get/pub/3DBenchs/bench_lmdz_iso_48x36x39.tar.gz 279 tar xvf bench_lmdz_iso_48x36x39.tar.gz 280 cd BENCHiso48x36x39 281 ./compile.sh 282 exec=../bin/gcm_48x36x39_phylmdiso_seq_iso_isoverif.e 283 if [ -f $exec ] ; then 284 $exec > listing 2>&1 285 suf=I 286 if [ -f restartphy.nc ] ; then 287 if [ $justcheck = 0 ] ; then 288 cp restart.nc $resubench/$BENCH/restart$suf.nc 289 fi 290 cmp -s restart.nc $latest/$BENCH/restart$suf.nc 291 if [ $? = 0 ] ; then convergeI=I ; else convergeI=i ; fi 292 else 293 # compiled but failed the isoverif test 294 convergeI=x 295 fi 296 else 297 # compilation failed; cleaning up for next compilation 298 convergeI=- 299 \rm -f libf/grid/dimensions.h 300 \rm -f .lock 284 301 fi 285 #! cmp -s $resubench/START$resolution/$var.nc $latest/START$resolution/$var.nc 286 cmp -s startphy.nc $latest/START$resolution/startphy.nc 287 if [ $? = 0 ] ; then 288 init=OK 302 fi 303 304 ######################################################################### 305 echo Verification de initialisation 306 ######################################################################### 307 308 if [ $check_ini = 1 ] ; then 309 cd $LMDZdir 310 rm -rf INIT 311 mkdir INIT 312 cp $BENCH/*def INIT 313 cd INIT 314 pwd 315 $get/Distrib/initialisation.sh 316 sed -e 's/grid_resolution=48x36x39/grid_resolution='$resolution'/' initialisation.sh > ini.sh 317 chmod +x ini.sh ; ./ini.sh 318 if [ -f limit.nc ] ; then 319 var=Tsoil01srf01 320 if [ $justcheck = 0 ] ; then 321 mkdir -p $resubench/START$resolution 322 ncks -M -m -h -v $var startphy.nc -O $resubench/START$resolution/$var.nc 323 cp startphy.nc $resubench/START$resolution/ 324 fi 325 cmp -s startphy.nc $latest/START$resolution/startphy.nc 326 if [ $? = 0 ] ; then 327 init=OK 328 else 329 init=noc 330 fi 289 331 else 290 init=noc332 init=- 291 333 fi 292 else 293 init=- 294 fi 295 296 ######################################################################## 297 echo end of test cases 298 ######################################################################## 334 fi 335 336 ######################################################################## 337 echo end of test cases 338 ######################################################################## 299 339 bench=OK 300 340 else … … 310 350 311 351 312 cd $ MODEL/m*/m*/352 cd $LMDZdir/.. 313 353 LMDZ=`\ls -d LMD*` #Nom du modele LMDZ sur modeles/ : LMDZ4, LMDZ5, LMDZ 314 354 … … 328 368 329 369 330 echo $version' '$svnrel' '$bench' '$ccc ' '$unpun' '$init' (ref:' $comparea ')' 331 332 exit 333 rm -fr $MODEL 370 371 ######################################################################## 372 # Ectiture du message de bilan 373 ######################################################################## 374 375 cd $local_d 376 377 echo $version' '$svnrel' '$bench' '$ccc ' '$unpun' '$init' (ref:' $comparea ')' > tmp.resu 378 cat > tmp.message <<eod 379 disponible sur 380 https://www.lmd.jussieu.fr/~lmdz/Distrib/modipsl.$version.tar.gz 381 382 Test local LMD network, gfortran, 48x36x19 383 ========================================== 384 385 install version SVN Bench Conv. 1+1=2 Init 386 run Nnum. & 387 /prev. mpiXomp 388 389 eod 390 cat tmp.resu >> tmp.message 391 cat >> tmp.message <<eod 392 393 394 || 395 \/ 396 397 S/s/-: 3D standard physics Converging/runing/not runing 398 N/n/-: - new - - 399 D/d/-: new with debug - 400 U/u/-: unicolonne - 401 I/i/x/-: isotope Converging/runing/run failed /compiled failed 402 noc: runs but no convergence 403 OK <=> SNDUI 404 eod 405 406 cat tmp.message 407 408 if [ $mail_address != "" ] ; then 409 ssh lmdz@django "mail -s 'Nouvelle version (recheck.sh)' $mail_address < "$local_d"/tmp.message" 410 fi
Note: See TracChangeset
for help on using the changeset viewer.