Changes between Version 23 and Version 24 of Doc/Setup/Ensemble
- Timestamp:
- 10/15/19 11:35:26 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Doc/Setup/Ensemble
v23 v24 15 15 To create an ensemble configuration you need to create an `ensemble.card` file. 16 16 17 '''NOTE''':a template of `ensemble.card` is given in `IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6` for IPSLCM6 model.18 19 20 When IPSLCM6.1.9-LR is downloaded with `./model IPSLCM6.1.9-LR` it will offer the possibility to launch experiments of the decadal type. [[BR]]17 **NOTE:** a template of `ensemble.card` is given in `IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6` for IPSLCM6 model. 18 19 20 Since IPSLCM6.1.9-LR, when IPSLCM6-LR is downloaded with `./model IPSLCM6.1.9-LR` it will offer the possibility to launch experiments of the decadal type. [[BR]] 21 21 To prepare an ensemble of simulations copy the [#Config.card config.card] and [#Ensemble.card ensemble.card] files from the directory: 22 {{{ 22 {{{#!bash 23 23 modipsl/config/IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6 24 24 }}} 25 25 into the directory: 26 {{{ 26 {{{#!bash 27 27 modipsl/config/IPSLCM6/ 28 28 }}} 29 29 30 Two type of ensemble are allowed with this template:31 32 1. Ens_DATE : allows to configure simulations starting from different restart dates , NON-Periodic.33 34 2. Ens_PERTURB : allows to configure simulations of differents members from an initial condition which is perturbed, PERIODIC, (it is possible to create different initial state perturbing Sea Surface Temperature with a with noise)30 Two types of ensemble are allowed with this template: 31 32 1. Ens_DATE : allows to configure simulations starting from different restart dates (choosen non-periodicaly). 33 34 2. Ens_PERTURB : allows to configure simulations of differents members from an initial condition which is perturbed, using PERIODIC restart dates (it is possible to create different initial states perturbing Sea Surface Temperature with a with noise). 35 35 36 36 All parameters for ensemble description are in [#Ensemble.card ensemble.card] and in [#Config.card config.card]. … … 42 42 ../../libIGCM/ins_job -e 43 43 This will create : 44 * all the directories of the ensemble45 * Qsub.''xxx''.sh : shell script to submit all jobs (!PeriodNb=5 for all simulations)44 * All the directories of the ensemble (by default !PeriodNb=5 for all simulations) 45 * Qsub.''xxx''.sh : shell script to submit all jobs 46 46 * Qclean.!PeriodLengt.''xxx''.sh : shell script to clean (if necessary) all simulations after an error, and to re-launch them 47 47 * Qclean.latestPackperiod.''xxx''.sh : shell script to clean (if necessary) last packed period after an error, and to re-launch them 48 48 49 **N ote:** ''xxx'' it will be the ''!JobName'' configured in config.card50 51 NOTE: If a directory exists, ins_job won't modify it, the creation of ensemble it willstopped.49 **NOTE:** 50 - ''xxx'' it will be the ''!JobName'' configured in config.card 51 - If a directory exists, ins_job won't modify it, the creation of ensemble will be stopped. 52 52 53 53 … … 59 59 The important lines for the ensemble set up are in the [!UserChoices] section. Make sure that !JobName and !ExperimentName are filled with proper values.[[BR]] 60 60 The variables !DateBegin and !DateEnd will be overwritten by variables present in [#Ensemble.card ensemble.card]. 61 {{{ 61 {{{#!bash 62 62 # 63 63 # This is config.card file for IPSLCM6 configuration … … 107 107 108 108 A section `[Ensemble]` should also be present. [[BR]] 109 It contains the information that we want to prepare an ensemble simulation with variable !EnsembleRun set to y and three unset fields to be filled in the ''config.card'' of each member after ''''`ins_job -e`''' has run.110 {{{ 109 It contains the informations that we want to store for an ensemble simulation. The variable !EnsembleRun must be set to `y` and three other fields will to be filled in the ''config.card'' of each member after ''''`ins_job -e`''' has ran. 110 {{{#!bash 111 111 #=========================== 112 112 [Ensemble] … … 123 123 }}} 124 124 125 **NOTE:** Notice that if you have a `Member=` parameter in the `[UserChoices]` section, it will be automatically incremented for each member. 126 125 127 ## Ensemble.card ## 126 It is possile to choice between 2 type of e snembles in ''ensemble.card'': [[BR]]128 It is possile to choice between 2 type of ensembles in ''ensemble.card'': [[BR]] 127 129 * Date restart ensemble which allows to configure simulations starting from different restart dates: need to fill section `[Ens_DATE]` [[BR]] 128 130 * Perturb ensemble which allows to generate members from an initial condition which is perturbed by different means: need to fill section`[Ens_PERTURB]` [[BR]] 129 131 130 T he choice between 2 type of ensembles set the variable `active` to ''y'' of section tat you want activate: [[BR]]132 To choose between the 2 types of ensembles, set the variable `active` to ''y'' of section that you want activate: [[BR]] 131 133 To activate '''Date Restart''' (non-Periodic) Ensembles : 132 {{{ 134 {{{#!bash 133 135 [Ens_DATE] 134 136 active=y … … 139 141 140 142 To activate '''Perturbed Restart''' (Periodic) Ensembles : [[BR]] 141 NOTE : Period can be also just 1Y (to be able to run NON-periodic perturbed ensembles) 142 {{{ 143 143 {{{#!bash 144 144 [Ens_DATE] 145 145 active=n … … 148 148 active=y 149 149 }}} 150 **NOTE:** Period can be only 1Y (to be able to run a kind of "NON-periodic perturbed ensemble") 150 151 151 152 152 153 # Configure a Date Restart ensemble experience # 153 154 154 The « Date Restart ensemble » is implemented to configure a set of simulations using several restart dates, generally chosen for a particular point (ex : randomly, particular climate oscillation phases, volcanic activity…).[[BR]] 155 156 In [#Ensemble.card ensemble.card] all configuration items of this ensemble are in `[Ens_DATE]` section.[[BR]] 157 The configuration to define restarts dates is non-periodic one, it needs to define a list of desired restarts. [[BR]] 158 Fill the following options : `active`, `NAME`, `LENGTH`, `INITFROM` and `INITPATH`.[[BR]] 159 160 {{{ 155 The « Date Restart ensemble » is implemented to configure a set of simulations using several restart dates, generally chosen following a particular protocol (ex : randomly, particular climate oscillation phases, volcanic activity…).[[BR]] 156 157 In [#Ensemble.card ensemble.card] as mentionned previously you need to activate `[Ens_DATE]` and desactivate the other ensemble types and configure the `[Ens_DATE]` section.[[BR]] 158 This is a non-periodic definition of the start dates (ie you'll need to specify all of them manually). Here is an example of a basic ensemble configuration: 159 160 {{{#!bash 161 161 [Ens_DATE] 162 162 # active=y to use date ensemble, 'n' for no DO NOT use. … … 177 177 178 178 # Restart root directory 179 INITPATH=$ CCCHOME/IGCM_OUT/IPSLCM6/REDO/piControl/CM61-LR-pi-03-REDO.MAY/1870-01-01179 INITPATH=$PATH_TO_RESTART/piControl 180 180 181 181 #--- Specific values for each member (overule default) --- … … 184 184 }}} 185 185 186 187 '''CAUTION''': The variable !CalendarType from ''config.card'' will be used to determine the next restart date. It should be consistent with the simulations from which you are initialising. 188 189 190 {{{ 191 #!html 192 <span style="border: solid 1px #000000; padding: 5px; font-weight: bold;"><span style="color: #ff0000">WARNING:</span> For list variables, use blank between values (no coma).</span> 193 }}} 186 In this example, you'll generate a 2-members ensemble starting from 1870-05-31 and 1881-05-31 (as definied in last line). Other parameters filled are "global ones", so it means that they are the same for all members. In all members' `config.card` files you'll get: 187 - `DateBegin= 1990-06-01` due to `STARTDATE=19900601` 188 - `DateEnd= 2000-05-31` due to `LENGTH=10Y` 189 - In all components' restarts section `RestartJobName=CM61-LR-pi-03` due to `INITFROM=CM61-LR-pi-03` option and `RestartPath$PATH_TO_RESTART/piControl` according to `INITPATH=$PATH_TO_RESTART/piControl`. 190 191 If you don't want to use the same value in all members for those parameters, you could use optional parameters `*_NONPERIODIC` to overule them. It is not necessary to fill all of them if only few are required for your configuration (in this case you'll mix general and specific ones). All of those optional parameters must be filled with the same format that for the `RESTART_NONPERIODIC` one. Here is an example with all the possibilities: 192 {{{#!bash 193 [Ens_DATE] 194 # active=y to use date ensemble, 'n' else. 195 active=y 196 197 #--- Default values for all members --- 198 # name of the ensemble (used to create root directory) 199 NAME= CM618-LR-volc-pinatubo-full 200 # default length for all simulations 201 LENGTH=10Y 202 # Default start date for all simulations 203 STARTDATE=19900601 204 # Experiment name to find all restart files (and default one for non-periodic) 205 INITFROM=CM61-LR-pi-03 206 # Restart root directory 207 INITPATH=$PATH_TO_RESTART/piControl 208 209 #--- Specific values for each member (overule default) --- 210 # list of corresponding restart dates 211 RESTART_NONPERIODIC=(18700531 18810531) 212 213 ### Optional options (use default values if not filled) ### 214 # list of start dates for all simulations 215 NONPERIODIC=(19910601 19910601) 216 # simulation name to restart for each simulation. IF empty all simulations will use INITFROM one. 217 INITFROM_NONPERIODIC=(CM61-LR-pi-03-REDO.MAY0A CM61-LR-pi-03-REDO.MAY1A CM61-LR-pi-03-REDO.MAY2A) 218 # directory of the restart for each simulation. IF empty all simulations will use INITPATH one. 219 INITPATH_NONPERIODIC=(path/to/simu1 path/to/simu2) 220 # length of each simulation. If empty all simulations duration will be the default LENGTH option. 221 LENGTH_NONPERIODIC=(10Y 50Y) 222 }}} 223 224 [[NoteBox(warn,For list-variables: use blank between values (no coma).)]] 194 225 195 226 … … 203 234 204 235 205 '''NOTE: '''It is MANDATORY that "NAME" in ensemble.card is the same of !JobName in config.card236 **NOTE:** It is MANDATORY that "NAME" in ensemble.card is the same of !JobName in config.card 206 237 !JobName variable in config.card will be the name of the root directory that would be created containing all config and script files and the ensemble. 207 238 … … 222 253 CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1979 [[BR]] 223 254 224 {{{ 255 {{{#!bash 225 256 #################################################################################### 226 257 [Ens_PERTURB] … … 284 315 285 316 286 The directory in which the start date is retrieved is given by INITPATH and INITFROM.[[BR]] 287 For this example restart is from experiment '''CM61-LR-nudgSSTSire-r1-2DERS-m''' [[BR]] 288 in directory $directory/IGCM_OUT/IPSLCM6/DEVT/historical 289 290 291 The way the perturbed member is generated depends on PERTURB_BIN array. 317 The directory in which the start date is retrieved is given by `INITPATH` and `INITFROM`.[[BR]] 318 For this example restart is from experiment '''CM61-LR-nudgSSTSire-r1-2DERS-m''' in directory $directory/IGCM_OUT/IPSLCM6/DEVT/historical 319 320 321 The way the perturbed member is generated depends on `PERTURB_BIN` array. 292 322 The first two elements are the most important. The first one is the executable to be used to produce the members, the second one is the component from which the restart is perturbed. 293 323 294 324 In the Periodic Case it is only possible to build the members by applying a randomly generated temperature pattern on the restart file of the coupler. 295 PERTURB_BINshould look like this : [[BR]]296 297 {{{ 325 `PERTURB_BIN` should look like this : [[BR]] 326 327 {{{#!bash 298 328 PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1) 299 329 }}} … … 306 336 * the randomly generated perturbation is in [-.05;+0.05] degrees 307 337 308 '''NOTE :'''The perturbation is not applied to grid points located under the sea ice. [[BR]]338 **NOTE:** The perturbation is not applied to grid points located under the sea ice. [[BR]] 309 339 This condition is "hard-written" in the !AddNoise code. Because of a change of the name of the sea ice cover variable from IPSL-CM5A (OIceFrac) and IPSL-CM6 (OIceFrc), a modification of the code has been made by Olivier Marti in June 2016 to allow the code to search for both names''' 310 340 311 For each member a new restart file for the coupler will be generated using the executable '' addnoise'' to add some randomly generated temperature perturbation.[[BR]]341 For each member a new restart file for the coupler will be generated using the executable ''AddNoise'' to add some randomly generated temperature perturbation.[[BR]] 312 342 313 343 The corresponding restart file of each member will be stored in 314 {{{ 344 {{{#!bash 315 345 directory/IGCM_IN/dcppA-hindcast/dcppA-hindcast/CPL/Restart/ 316 346 }}} 317 347 318 348 The perturbation executable must be ''!AddNoise''. 319 {{{ 349 {{{#!bash 320 350 PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1) 321 351 }}} … … 323 353 324 354 Once [#Config.card config.card] and [#Ensemble.card ensemble.card] will be properly filled launch ins_job -e to generate all ensemble directories. 325 {{{ 355 {{{#!bash 326 356 ins_job -e # Check and complet job's header 327 357 }}} 328 358 329 You can use Qsub.''xxx''.sh (at the !JobName directory level) to launch at same time ALL Jobs, or you can procede to launch jobs one by one : [[BR]] 330 cd ''directoy'' [[BR]] 331 qsub ''Jobname'' [[BR]] 332 cd .. [[BR]] 333 cd ''directoy'' [[BR]] 334 qsub ''Jobname'' [[BR]] 335 etc... [[BR]] 359 # Start your ensemble experience # 360 361 Once your configurations files are properly filled and `ins_job -e` ends successfully you'll probably want to run your new ensemble. As mentionned upper, some scripts to run and clean all ensemble members will becreated. [[BR]] 362 You can use Qsub.''xxx''.sh (at the !JobName directory level) to launch at same time ALL jobs: 363 {{{#!bash 364 sh Qsub.''xxx''.sh 365 }}} 366 367 If an error occured in all the runs, you could use ''Qclean.*.sh'' scripts. 368 369 [[NoteBox(tip,Before starting all the ensemble we recommanded you to test only with one member to avoid massive cleaning for basic configuration troubles)]]