48 | | Au CCRT ou à l'IDRIS, méthode complète permettant de prévoir de refaire aussi tous les post-traitements : [[BR]] |
49 | | * Sur la frontale, une fois pour toutes les simulations : |
50 | | * Installer un répertoire dédié |
51 | | * Récupérer libIGCM et faire ins_job |
52 | | * Sur la frontale, pour chaque simulation : |
53 | | * Installer un répertoire pour la simulation concernée. |
54 | | * '''Pour refaire des rebuild ''': |
55 | | * Aller chercher le fichier libIGCM/rebuild_fromArchive.job (IDRIS) ou rebuild_fromWorkdir.job (CCRT) |
56 | | * Modifier le fichier rebuild_from*.job : Mêmes paramètres que la méthode simple. |
57 | | * Soumettre rebuild_from*.job. ''' Note''' il soumet automatiquement pack_output.job |
58 | | * '''Pour refaire les pack_restart et pack_debug ''' : |
59 | | * Aller chercher les fichiers libIGCM/pack_debug.job et libIGCM/pack_restart.job |
60 | | * Modifier les fichiers pack_*job : Même paramètres que la méthode simple |
| 48 | Au CCRT ou à l'IDRIS, méthode complète permettant de refaire tous les post-traitements : [[BR]] |
| 49 | |
| 50 | On prépare le terrain sur la machine de post-traitement (voir la [wiki:Modipsl_postFAQ#Oùtournentlespost-traitements? liste]). Deux cas sont possibles: |
| 51 | * la machine de post-traitement est la machine de calcul : on travaillera dans le répertoire d'expérience (ex: PATH_MODIPSL/config/IPSLCM5A/ST11/) |
| 52 | * la machine de post-traitement n'est pas la machine de calcul : il faut importer (scp pour l'IDRIS ou passage par le CSCRATCH ou le HOME pour le CCRT) le répertoire d'expérience et libIGCM |
| 53 | * Installer un répertoire dédié (une fois pour toutes les simulations) |
| 54 | * Récupérer libIGCM et faire ins_job (une fois pour toutes les simulations) |
| 55 | * Installer un répertoire pour la simulation concernée. (pour chaque simulation) |
| 56 | {{{ |
| 57 | mkdir -p POST |
| 58 | cd POST/ |
| 59 | copie de $PATH_MODIPSL/config/IPSLCM5A/ST11 . |
| 60 | }}} |
| 61 | |
| 62 | * '''Attention sur Ulam''' : le répertoire POST doit être sur le WORKDIR et non pas sur le HOME (problèmes de quota) |
| 63 | * '''Attention : ''' avant de lancer le job vérifiez que son entête correspond bien à la frontale sur laquelle vous travaillez (en particulier si vous le lancer sur une autre frontale que celle de votre machine de calcul). Pour cela comparez l'entête de votre job et celle qui est indiquée dans libIGM/AA_rebuild_fromWorkdir (ou autre). |
| 64 | * '''Attention au CCRT : ''' avant de soumettre votre job vous devez ajouter le groupe de soumission dans l'entête du job. (genci ou dsm) |
| 65 | |
| 66 | === REBUILD === |
| 67 | * Copier dans POST/ (ou dans le répertoire d'expérience) |
| 68 | * à l'IDRIS ou si !RebuildFromArchive=yes dans config.card : le fichier libIGCM/rebuild_fromArchive.job |
| 69 | * au CCRT/TGCC !RebuildFromArchive=NONE dans config.card : le fichier rebuild_fromWorkdir.job |
| 70 | * Modifier le fichier rebuild_from*.job |
| 71 | {{{ |
| 72 | StandAlone=true |
| 73 | |
| 74 | libIGCM= --> Pointe vers le répertoire libIGCM de l'expérience. |
| 75 | |
| 76 | PeriodDateBegin= --> Date de fin de la série à rebuilder |
| 77 | |
| 78 | NbRebuildDir= --> Nombre de repertoires de la série à rebuilder jusqu'à la PeriodDateBegin |
| 79 | |
| 80 | config_UserChoices_JobName= --> JobName de la simulation dont sont issus les fichiers à reconstruire |
| 81 | |
| 82 | R_SAVE= --> Path de sauvegarde des sorties de la simulation (de type $CCCSTOREDIR/IGCM_OUT/TagName/SpaceName/ExperimentName/JobName/) |
| 83 | |
| 84 | REBUILD_DIR= --> Path de sauvegarde des fichiers en attente de reconstruction (de type $SCRATCHDIR/REBUILD/TagName/JobName/ si RebuildFromArchive=NONE) |
| 85 | |
| 86 | MASTER=${MASTER:=mercure|titane|brodie|vargas} --> selectionner la machine de calcul : MASTER=titane par exemple |
| 87 | }}} |
| 88 | |
| 89 | * Soumettre rebuild_from*.job. ''' Note''' il soumet automatiquement pack_output.job |
| 90 | {{{ |
| 91 | ccc_msub rebuild_from*.job (CCRT) |
| 92 | llsubmit rebuild_from*job (IDRIS) |
| 93 | }}} |
| 94 | |
| 95 | |
| 96 | === Pack_restart et Pack_debug === |
| 97 | * Copier dans POST (ou dans le répertoire d'expérience) les fichiers libIGCM/pack_debug.job et libIGCM/pack_restart.job |
| 98 | * Modifier les fichiers pack_*job : |
| 99 | {{{ |
| 100 | libIGCM=${libIGCM:=::modipsl::/libIGCM} --> path de la librairie libIGCM |
| 101 | |
| 102 | MASTER=${MASTER:=mercure|titane|brodie|vargas} --> machine sur laquelle on travaille |
| 103 | |
| 104 | DateBegin=${DateBegin:=20000101} --> date de début de la période à packer |
| 105 | |
| 106 | DateEnd=${DateEnd:=20691231} --> date de fin de la période à packer |
| 107 | |
| 108 | PeriodPack=${PeriodPack:=10Y} --> Fréquence de pack |
| 109 | }}} |
67 | | * Le lancer en interactif, c'est lui qui lancera tout seul les jobs create_ts manquants. |
68 | | * Astuce : garder la sortie de cela : |
69 | | {{{ |
70 | | ./TimesSeries_Checker.job 2>&1 | tee TSC_OUT_POUR_VERIF |
71 | | }}} |
72 | | * ''' Pour refaire des SE ''': |
73 | | * Si ce n'est déjà fait, rapatrier config.card, COMP et POST depuis la machine de calcul |
74 | | * Aller chercher le fichier libIGCM/SE_Checker.job |
| 120 | {{{ |
| 121 | libIGCM=${libIGCM:=...MYEXP/modipsl/libIGCM} --> Path de la librairie libIGCM |
| 122 | |
| 123 | SpaceName=${SpaceName:=DEVT} |
| 124 | |
| 125 | ExperimentName=${ExperimentName:=pdControl} |
| 126 | |
| 127 | JobName=${JobName:=MYEXP} |
| 128 | |
| 129 | CARD_DIR=${CARD_DIR:=${CURRENT_DIR}} --> Path du répertoire d'expérience (donc CURRENT_DIR si l'on a bien copié TimeSeries_Checker.job |
| 130 | }}} |
| 131 | * Modifier le fichier create_ts.job : |
| 132 | {{{ |
| 133 | StandAlone=true |
| 134 | |
| 135 | libIGCM= --> Patch de la librairie libIGCM utilisée |
| 136 | |
| 137 | PeriodDateEnd --> date de fin des time-series a créer |
| 138 | |
| 139 | CompletedFlag --> date de fin des times-series déjà existantes (si tel est le cas) |
| 140 | |
| 141 | TsTask=2D --> choix entre 2D ou 3D |
| 142 | |
| 143 | RebuildFrequency=true |
| 144 | }}} |
| 145 | * Lancement de !TimeSeries_Checker.job en interactif, c'est lui qui lancera tout seul les jobs create_ts manquants. : |
| 146 | {{{ |
| 147 | ./TimeSeries_Checker.job |
| 148 | }}} |
| 149 | ou mieux encore , en ksh : |
| 150 | {{{ |
| 151 | ./TimeSeries_Checker.job 2>&1 | tee TSC_OUT =====> en ksh pour garder la trace dans un fichier |
| 152 | grep Batch TSC_OUT =====> pour repérer l'ensemble des jobs lancés |
| 153 | }}} |
| 154 | |
| 155 | * '''Note : ''' si vous avez des TS 2D et 3D il faut relancer deux fois les jobs create_ts en modifiant la variable TsTask entre les deux |
| 156 | |
| 157 | === Pour refaire des SE === |
| 158 | * Si ce n'est pas déjà fait : rapatrier dans le répertoire POST/ : |
| 159 | * les fichiers et répertoires config.card, COMP et POST depuis la machine de calcul |
| 160 | * Copier dans le répertoire POST/ (ou le répertoire d'expérience) les fichiers libIGCM/create_se.job et libIGCM/SE_Checker.job |
88 | | |
89 | | |
90 | | [[BR]][[BR]] |
91 | | == En détail : Comment relancer les différents post-traitements ? == |
92 | | '''Note : ''' Si tous vos rebuilds sont complets et qu'il ne vous manque que des !TimeSeries nous vous conseillons fortement d'utiliser le script [wiki:Modipsl_postFAQ#CommentutiliserTimeSeries_Checker.job TimeSeries_Checker][[BR]] |
93 | | |
94 | | Voici en détail les différentes étapes pour relancer les post-traitements d'une simulation sur un exemple (la simulation couplée ST11 de la configuration IPSLCM5A a tourné sur la machine SX9 mercure du CCRT et ses post-traitements sont effectués sur la machine cesium du CCRT). |
95 | | |
96 | | |
97 | | * On prépare le terrain sur la machine de post-traitement (voir la [wiki:Modipsl_postFAQ#Oùtournentlespost-traitements? liste]). Deux cas sont possibles: |
98 | | * la machine de post-traitement est la machine de calcul : on travaillera dans le répertoire d'expérience (ex: PATH_MODIPSL/config/IPSLCM5A/ST11/) |
99 | | * la machine de post-traitement n'est pas la machine de calcul : il faut importer (scp pour l'IDRIS ou passage par le CSCRATCH ou le HOME pour le CCRT) le répertoire d'expérience |
100 | | |
101 | | {{{ |
102 | | mkdir -p POST |
103 | | cd POST/ |
104 | | copie de $PATH_MODIPSL/config/IPSLCM5A/ST11 . |
105 | | }}} |
106 | | |
107 | | '''Attention : ''' sur Ulam le répertoire POST doit être sur le WORKDIR et non pas sur le HOME (problèmes de quota) |
108 | | |
109 | | * On recopie les jobs de post-traitement à soumettre : |
110 | | {{{ |
111 | | cp $PATH_MODIPSL/libIGCM/rebuild_fromArchive.job . |
112 | | cp $PATH_MODIPSL/libIGCM/pack_output.job . |
113 | | cp $PATH_MODIPSL/libIGCM/pack_debug.job . |
114 | | cp $PATH_MODIPSL/libIGCM/pack_restart.job . |
115 | | cp $PATH_MODIPSL/libIGCM/create_ts.job . |
116 | | cp $PATH_MODIPSL/libIGCM/create_se.job . |
117 | | }}} |
118 | | ou bien si on est dans le cas !RebuildFromArchive=NONE |
119 | | {{{ |
120 | | cp $PATH_MODIPSL/libIGCM/rebuild_fromWorkdir.job . |
121 | | cp $PATH_MODIPSL/libIGCM/pack_output.job . |
122 | | cp $PATH_MODIPSL/libIGCM/pack_debug.job . |
123 | | cp $PATH_MODIPSL/libIGCM/pack_restart.job . |
124 | | cp $PATH_MODIPSL/libIGCM/create_ts.job . |
125 | | cp $PATH_MODIPSL/ibIGCM/create_se.job . |
126 | | }}} |
127 | | |
128 | | |
129 | | * On adapte les jobs à soumettre en modifiant certaines variables : |
130 | | |
131 | | |
132 | | Dans '''rebuild_fromArchive.job''' (ou '''rebuild_fromWorkdir.job'''), il faut modifier : |
133 | | |
134 | | {{{ |
135 | | StandAlone=true |
136 | | libIGCM=${HOME}/MIRROR/ST11/libIGCM # Pointe vers le répertoire libIGCM de l'expérience. |
137 | | |
138 | | PeriodDateBegin=20191201 # Date de fin de la série à rebuilder |
139 | | NbRebuildDir=12 # Nombre de repertoires de la série à rebuilder jusqu'à la PeriodDateBegin |
140 | | config_UserChoices_JobName=ST11 |
141 | | R_SAVE=${DMFDIR}/IGCM_OUT/IPSLCM5A/DEVT/pdControl/${config_UserChoices_JobName} |
142 | | REBUILD_DIR=${R_SAVE}/TMP |
143 | | MASTER=${MASTER:=mercure|titane|brodie|vargas} # selectionner la machine de calcul : MASTER=titane par exemple |
144 | | }}} |
145 | | |
146 | | Dans '''pack_*.job ''', il faut modifier et renseigner les champs suivants : |
147 | | |
148 | | {{{ |
149 | | libIGCM=${libIGCM:=::modipsl::/libIGCM} --> path de la librairie libIGCM |
150 | | |
151 | | MASTER=${MASTER:=mercure|titane|brodie|vargas} --> machine sur laquelle on travaille |
152 | | |
153 | | DateBegin=${DateBegin:=20000101} --> date de début de la période à packer |
154 | | |
155 | | DateEnd=${DateEnd:=20691231} --> date de fin de la période à packer |
156 | | |
157 | | PeriodPack=${PeriodPack:=10Y} --> Fréquence de pack |
158 | | |
159 | | }}} |
160 | | |
161 | | |
162 | | Dans '''create_ts.job''', il faut modifier : |
163 | | |
164 | | {{{ |
165 | | StandAlone=true |
166 | | libIGCM=${HOME}/MIRROR/ST11/libIGCM # Pointe vers le répertoire libIGCM de l'expérience. |
167 | | |
168 | | PeriodDateEnd=20191230 # date de fin des time-series a créer |
169 | | CompletedFlag=20091230 # date de fin des times-series déjà existantes (si tel est le cas) |
170 | | TsTask=2D # 2D or 3D |
171 | | RebuildFrequency=true |
172 | | }}} |
173 | | |
174 | | Dans '''create_se.job''', il faut modifier : |
175 | | |
176 | | {{{ |
177 | | StandAlone=true |
178 | | libIGCM=${HOME}/MIRROR/ST11/libIGCM # Pointe vers le répertoire libIGCM de l'expérience. |
179 | | |
180 | | PeriodDateEnd=20191230 # date de fin de la décennie a traiter |
181 | | }}} |
182 | | |
183 | | * Lancement des jobs de post-traitement : |
184 | | |
185 | | {{{ |
186 | | ccc_msub rebuild_fromArchive.job (ou llsubmit rebuild_fromArchive.job à l'IDRIS) |
187 | | ccc_msub create_ts.job (ou llsubmit create_ts.job à l'IDRIS) |
188 | | ccc_msub create_se.job (ou llsubmit create_se.job à l'IDRIS) |
189 | | }}} |
190 | | ou bien si on est dans le cas !RebuildFromArchive=NONE |
191 | | {{{ |
192 | | ccc_msub rebuild_fromWorkdir.job |
193 | | ccc_msub create_ts.job |
194 | | ccc_msub create_se.job |
195 | | }}} |
196 | | |
197 | | * '''Note : ''' si vous avez des TS 2D et 3D il faut relancer deux fois les jobs create_ts en modifiant la variable TsTask entre les deux |
198 | | * '''Attention : ''' avant de lancer le job vérifiez que son entête correspond bien à la frontale sur laquelle vous travaillez (en particulier si vous le lancer sur une autre frontale que celle de votre machine de calcul). Pour cela comparez l'entête de votre job et celle qui est indiquée dans libIGM/AA_rebuild_fromWorkdir (ou autre). |
199 | | * '''Attention au CCRT : ''' avant de soumettre votre job vous devez ajouter le groupe de soumission dans l'entête du job. (genci ou dsm) |
200 | | |
201 | | |
202 | | [[BR]][[BR]] |
203 | | == Méthode simple pour relancer le rebuild depuis la machine de calcul CCRT == |
204 | | |
205 | | Pour relancer les rebuild, il faut aller sur la frontale, dans le répertoire modipsl/libIGCM (l'original ou celui synchronisé dans ~MIRROR/xxxxxx/modipsl/libIGCM), modifier le job : rebuild_fromArchive.job en précisant les paramètres, le lancer sur la frontale. llsubmit sur ulam, ccc_msub sur cesium et titane. Paramètres à modifier : |
206 | | |
207 | | {{{ |
208 | | libIGCM=${libIGCM:=/path/to/your/libIGCM} |
209 | | MASTER=${MASTER:=mercure|titane|brodie|vargas} # selectionner la machine de calcul : MASTER=titane par exemple |
210 | | REBUILD_DIR=${REBUILD_DIR:=/path/to/your/TMP/REBUILD/FILES} |
211 | | NbRebuildDir=${NbRebuildDir:=12} |
212 | | PeriodDateBegin=${PeriodDateBegin:=18901201} |
213 | | config_UserChoices_JobName=${config_UserChoices_JobName:=name_of_the_job} |
214 | | R_SAVE=${R_SAVE:=/path/to/your/ARCHIVE/FILES} |
215 | | }}} |
216 | | |
217 | | * '''Attention : ''' vérifier également que vous appartenez bien au groupe de soumission au CCRT (par défaut gen2211) sinon modifier la ligne correspondante (en la commentant pour utiliser des heures dsm ou en changeant le groupe genci) |
218 | | |
219 | | |
220 | | |
221 | | [[BR]][[BR]] |
222 | | == Comment utiliser !TimeSeries_Checker.job? == |
223 | | !TimeSeries_Checker.job est un script (qui se lance en interactif) qui vérifie les Séries temporelles (TS) existantes et relance les jobs create_TS nécessaires pour reconstruire les TS manquantes. C'est donc un utilitaire de post-traitement qui se lance depuis la machine de post-traitement. Voir question précédente. Les "Rebuilds" doivent être fait pour créer les séries temporelles. |
224 | | |
225 | | Les différentes étapes sur un exemple (la simulation couplée MYEXP de la configuration IPSLCM5A a tourné sur la machine SX9 mercure du CCRT et ses post-traitements sont effectués sur la machine cesium du CCRT). |
226 | | |
227 | | * On se met sur la machine cesium et on prépare le terrain (voir question précédente) : |
228 | | {{{ |
229 | | Cesium > cd $WORKDIR; mkdir -p POST/MYEXP ; cd POST/MYEXP |
230 | | }}} |
231 | | |
232 | | * On recopie les cartes caractérisant les composantes (depuis le répertoire ou la simulation a été lancée). Voir aussi question précédente. |
233 | | {{{ |
234 | | Cesium> scp -pr mercure:... MYEXP/COMP . |
235 | | Cesium> scp -pr mercure:... MYEXP/POST . |
236 | | Cesium> scp -r mercure:... MYEXP/config.card . |
237 | | }}} |
238 | | |
239 | | * On recopie les jobs de post-traitement à soumettre : |
240 | | {{{ |
241 | | Cesium> scp mercure:.../libIGCM/create_ts.job . |
242 | | Cesium> scp mercure:.../libIGCM/TimeSeries_Checker.job . |
243 | | }}} |
244 | | |
245 | | * On adapte !TimeSeries_Checker.job en modifiant certaines variables : |
246 | | {{{ |
247 | | libIGCM=${libIGCM:=...MYEXP/modipsl/libIGCM} ==> libIGCM sur cesium!!!! |
248 | | SpaceName=${SpaceName:=DEVT} |
249 | | ExperimentName=${ExperimentName:=pdControl} |
250 | | JobName=${JobName:=MYEXP} |
251 | | CARD_DIR=${CARD_DIR:=${CURRENT_DIR}} |
252 | | }}} |
253 | | |
254 | | * Lancement de !TimeSeries_Checker.job : |
255 | | |
256 | | {{{ |
257 | | cesium> ./TimeSeries_Checker.job |
258 | | }}} |
259 | | ou mieux encore , en ksh : |
260 | | {{{ |
261 | | cesium> ./TimeSeries_Checker.job 2>&1 | tee TSC_OUT =====> en ksh pour garder la trace dans un fichier |
262 | | cesium> grep Batch TSC_OUT =====> pour repérer l'ensemble des jobs lancés |
263 | | }}} |