= !HighTune 1D => 3D : tuning 3D de LMDZ contraint par le 1D = == 0/ Partir du tuning 1D == Lancer N vagues de tuning 1D avec des métriques 1D avec les mêmes paramètres qui seront utilisés en 1D et en 3D. Le nombre de simulations (jeu de valeurs des paramètres) est 10*le nombre de paramètres utiles. == 1/ Préparer les paramètres de la vague 3D à partir du 1D == A partir de la vague N, on introduit le 3D pour refaire le modèle réduit de la vague N et choisir les paramètres des simulations de la vague N+1 par un crible aléatoire du domaine des valeurs admissibles. Avec par exemple N=8 et 20 paramètres : Lancer la vague 8 en 1D : avec `multi_art.sh`. == 2/ préparer les physiq.def des simulations 3D avec les paramètres obtenus du 1D == Récupérer les jeux de paramètres depuis WORK/MONEXPE/WAVE8/CAS1D/REF/DEF : il s'agit des fichiers physiq.def_SCM_8-001 à 200. On va les copier sur le super calculateur (ici Jean-Zay) Le répertoire doit aussi contenir le physiq.def de la simulation de référence (physiq.def_NPv6.1)On va relancer des simulations en 3D avec ces valeurs de paramètres a partir d'une installation 3D tutorial_prod.On copie dans DEF/PHYS de l'installation tutorial_prod les 200 physiq.def_SCM_8-001 200 et physiq.def_NPv6.1. (modifié) == 3/ préparer le script des simulations 3D == On modifie `main.sh` pour exécuter les 201 simulations. Dans main.sh : resol=96x95x59 (a adapter selon sa config avec le bon L??.def pour les niveaux verticaux).Valoriser init, mthini and mthend comme voulu.mettre dans physics la simulation de reference : physics="NPv6.1"rentrer la liste des 200 simulations dans physics : {{{#!sh smin=1 smax=200 for s in $(seq -f "%03g" $smin $smax) ; do physics="$physics SCM_8-$s" ; done }}} La boucle for suivante (dans main.sh) va parcourir les valeurs de physics et lancer les simulations. {{{#!sh for phys in $physics ; do sed -e 's/ifl_pbltree=1/ifl_pbltree=0/' DEF/PHYS/physiq.def_$phys >| DEF/physiq.def # name of simulation. Equal to $phys by default name=$phys ./setup.sh -d $resol -f $freq -v $version -name $name $svn $install -init $init $cosp $xios -mthini $mthini -mthend $mthend $nudging -climato $climato if [ $init = 1 ] ; then init=0 ; fi # init=1 is possible only for the first simulation done }}} == 4/ Mettre à jour le projet de calcul == modifier `lmdz_env.sh` pour calculer sur le bon projet : groupe=nfl dans jean-) pour calculer sur le projet nfl. {{{#!sh jean-) ARCH=X64_JEANZAY module purge compilo=19.0.4 # available 2013.0, 2017.2 module load intel-compilers/$compilo #module load intel-mpi/$compilo module load intel-mkl/$compilo module load hdf5/1.10.5-mpi module load netcdf/4.7.2-mpi module load netcdf-fortran/4.5.2-mpi module load subversion/1.9.7 module load nco module load cdo login=`whoami` ; groupe=`echo $login | cut -c2-4` groupe=nfl # Inputation de la consommation sur le groupe $groupe # changer la variable groupe pour imputer sur un autre groupe # que celui de son compte # Par exemple # groupe=lmd ... }}} == 5/ Lancer les simulations 3D == `./main.sh` == 6/ Post traitement == Editer `postseason.sh` pour lancer le post-traitement de l'ensemble de simulations. Ici on a inclut la simulation de référence qui peut être omise dans les vagues successive de 3D : {{{#!sh sims="NPv6.1precliq" smin=1 smax=200 wave=8 for s in $( seq -f "%03g" $smin $smax ) ; do sims="$sims SCM_${wave}-$s" ; done for s in $sims ; do ./seasonal.sh $s ; done }}} == 7/ Transfert des fichiers sur ciclad == Dans un répertoire personnel utiliser `monget.sh` pour rapatrier les fichiers du 3D : {{{#!sh login=rces982 main=TNAMA if [ $main = "TNAMA" ] ; then sims="NPv6.1precliq" min=1 max=200 wave=8 for nb in $( seq -f "%03g" $min $max) ; do sims="$sims SCM_${wave}-$nb" ; done elif [ ${main:0:7} = TUNE_II ] ; then wave=32 sims="NPv6.1 " sims="CTRL" for i in `seq -w 1 90` ; do sims="$sims SCM_${wave}-0$i" ; done else echo main $main non prevu ; exit fi for i in $sims ; do ./get.sh $main $i $login chmod -R a+Xr SN${main}${i}* done }}} `monget.sh` utilise rsync en appelant le script `get.sh` pour récupérer les fichiers sur jean-zay == 8/ liens symbolique de SCM-8- vers SCM_8- == Pour pouvoir lancer le multi_atlas il faut remplacer _ par - dans le nom des fichiers. On utilise le script to-.sh #!/bin/bash local=`pwd` wave=8 for old in SN*SCM_${wave}* ; do new=`echo $old | sed -e 's/_/-/g'` ; echo $old $new for dir in SE TS_DA ; do if [ -d $local/$old/ATM/Analyse/$dir ] ; then cd $local/$old/ATM/Analyse/$dir echo Traitement $local/$old/ATM/Analyse/$dir mkdir -p $local/$new/ATM/Analyse/$dir for file in *nc ; do cd $local/$new/ATM/Analyse/$dir ln -s $local/$old/ATM/Analyse/$dir/$file ./`echo $file | sed -e 's/'$old'/'$new'/'` done fi done done == 9/ Préparation du multi atlas == Créer un fichier nd.comp avec les simulations voulues pour le multiatlas et les valeurs de paramètres correspondantes en copiant Par1D_Wave8.asc à partir de WORK/SIMU1D/WAVE8/ dans nd.${main}_W$wave par exemple nd.TNAMA_W8 enlever les " de nd.TNAMA_W8 : sed -i 's/"//g' nd.TNAMA_W8 remplacer SCM_8 par SCM-8 pour les noms de simulation : sed -i 's/SCM_/SCM-/' nd.TNAMA_W8 mettre OK à la fin des lignes contenant les paramètres de simulations : sed -i '2,$ s/$/ OK/' nd.TNAMA_W8 mettre nd.TNAMA_W8 sur fabric@ciclad dans le répertoire de lancement de min.sh. Choisir les simulations à traiter dans min.sh : main=TNAMA wave=8 comp=${main}_W$wave multi=/prodigfs/ipslfs/dods/fabric/lmdz/MultiSimu/$comp years=2011_2011 Activer dans min.sh les sorties du multiatlas : cmor=1 atlas=1 tuning=1 zon=1 axe2=1 html=1 Lancer ./min.sh vérifier que les atlas sont terminés : qstat | grep fabric une fois les atlas terminés relancer ./min.sh == 10/ métriques 3D == Récupérer les fichiers 3D sur la machine des simulations 1D : Dans un dossier 3D créer un dossier pour la vague 8 : TNAMAW8 Récupérer get.sh, to.sh post_scores.sh pp.sh et prepa.sh Modifier get.sh : #!/bin/bash wave=8 main_multi=TNAMA_W${wave} main_sims=SNTNAMA years=2011_2011 years_ctrl=2001_2001 Lancer ./get.sh une fois les fichiers récupérés Calculer les métriques 3D avec to.sh : copier nd.TNAMA_W8 et les paramètres utilisés pour le tuning 1D ici param_AMA2020 : WDENSO 1.e-11 1.e-8 1.e-9 log ALPBLK 0.2 0.8 0.5 linear ALPWKK 0.01 0.5 0.25 linear CLDLC 0.0001 0.001 0.00065 linear CLDCV 0.5 3. 1.0 log ... modifier to.sh : waves=8 EXPE=TNAMA ROOTCTRL=FHSERIE8CTRL period=2011_2011 param_file=param_AMA2020 Lancer ./to.sh Une fois les métriques tracées et visualisées calculer les scores. Calculer les scores de métriques avec post_scores.sh Copier metrics.csv et obs.csv depuis WRKLR8. Ajouter la ligne des tolérances dans obs.csv : VAR,0.04,25,25,25,25,100,100,25,25,100,25,0.1,0.005,0.04,0.25,0.25,0.25 (cf prepa.sh ligne 28) Modifier post_scores.sh : wavemin=8 wavemax=8 Lancer ./post_scores.sh Visualiser les scores de métriques pour la vague 8 : Modifier pp.sh pour ajouter les métriques utilisées : xmgrace -legend load glob.rt glob.rsut etoa.rsut circAa.rlut circAa.rsut conv.rlut conv.rsut weak.rlut weak.rsut subs.rlut subs.rsut MJO ">50" AMMA PANET.pr OCEMAR.pr CONMAR.pr -log y -hardcopy -hdevice EPS -printfile tmp.eps -param param Lancer ./pp.sh == 11/ réunir les métriques 3D et 1D == récupérer htune_csv.R modifier prepa.sh : ORIG=TNAMA (répertoire 1D vague 8) NEW=TNAMA1D3D_W8 (répertoire de travail) w0=8 (vague 1D+3D) MAIN=~/HTCINDYWK/R194/HighTune/WORK ... echo "VAR,0.04,25,25,25,25,100,100,25,25,100,25,0.1,0.005,0.04,0.25,0.25,0.25" >> obs.csv (vérifier la consistance avec obs.csv) ligne 37 et ligne 55, remplacer grep $i par: grep ${i/-/_} our travailler sur SCM_ et pas SCM- Lancer ./prepa.sh == 12/ générer l'émulateur et la prochaine vague ==