Changes between Version 23 and Version 24 of Doc/Setup/Ensemble


Ignore:
Timestamp:
10/15/19 11:35:26 (5 years ago)
Author:
nillod
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Doc/Setup/Ensemble

    v23 v24  
    1515To create an ensemble configuration you need to create an `ensemble.card` file. 
    1616 
    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 
     20Since 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]] 
    2121To prepare an ensemble of simulations copy the [#Config.card config.card] and [#Ensemble.card ensemble.card] files from the directory:  
    22 {{{ 
     22{{{#!bash 
    2323modipsl/config/IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6 
    2424}}} 
    2525into the directory: 
    26 {{{ 
     26{{{#!bash 
    2727modipsl/config/IPSLCM6/ 
    2828}}} 
    2929 
    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) 
     30Two types of ensemble are allowed with this template: 
     31 
     321. Ens_DATE  : allows to configure simulations starting from different restart dates (choosen non-periodicaly). 
     33 
     342. 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). 
    3535 
    3636All parameters for ensemble description are in [#Ensemble.card ensemble.card] and in  [#Config.card config.card]. 
     
    4242       ../../libIGCM/ins_job -e 
    4343This will create : 
    44 * all the directories of the ensemble  
    45 * 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 
    4646* Qclean.!PeriodLengt.''xxx''.sh : shell script to clean (if necessary) all simulations after an error, and to re-launch them 
    4747* Qclean.latestPackperiod.''xxx''.sh : shell script to clean (if necessary) last packed period after an error, and to re-launch them 
    4848 
    49 **Note:** ''xxx'' it will be the ''!JobName'' configured in config.card 
    50  
    51 NOTE: If a directory exists, ins_job won't modify it, the creation of ensemble it will stopped. 
     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. 
    5252 
    5353 
     
    5959The important lines for the ensemble set up are in the [!UserChoices] section. Make sure that !JobName and !ExperimentName are filled with proper values.[[BR]] 
    6060The variables !DateBegin and !DateEnd will be overwritten by variables present in [#Ensemble.card ensemble.card]. 
    61 {{{ 
     61{{{#!bash 
    6262# 
    6363# This is config.card file for IPSLCM6 configuration 
     
    107107 
    108108A 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 {{{ 
     109It 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 
    111111#=========================== 
    112112[Ensemble] 
     
    123123}}} 
    124124 
     125**NOTE:** Notice that if you have a `Member=` parameter in the `[UserChoices]` section, it will be automatically incremented for each member. 
     126 
    125127## Ensemble.card ## 
    126 It is possile to choice between 2 type of esnembles in ''ensemble.card'': [[BR]] 
     128It is possile to choice between 2 type of ensembles in ''ensemble.card'': [[BR]] 
    127129* Date restart ensemble which allows to configure simulations starting from different restart dates: need to fill section `[Ens_DATE]` [[BR]] 
    128130* Perturb ensemble which allows to generate members from an initial condition which is perturbed by different means: need to fill section`[Ens_PERTURB]` [[BR]] 
    129131 
    130 The choice between 2 type of ensembles set the variable `active` to ''y'' of section tat you want activate:  [[BR]] 
     132To choose between the 2 types of ensembles, set the variable `active` to ''y'' of section that you want activate:  [[BR]] 
    131133To activate '''Date Restart''' (non-Periodic) Ensembles : 
    132 {{{ 
     134{{{#!bash 
    133135[Ens_DATE] 
    134136active=y 
     
    139141 
    140142To 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 
    144144[Ens_DATE] 
    145145active=n 
     
    148148active=y 
    149149}}} 
     150**NOTE:** Period can be only 1Y (to be able to run a kind of "NON-periodic perturbed ensemble") 
    150151 
    151152 
    152153# Configure a Date Restart ensemble experience # 
    153154 
    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 {{{ 
     155The « 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 
     157In [#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]] 
     158This 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 
    161161[Ens_DATE] 
    162162# active=y to use date ensemble, 'n' for no DO NOT use. 
     
    177177 
    178178# Restart root directory 
    179 INITPATH=$CCCHOME/IGCM_OUT/IPSLCM6/REDO/piControl/CM61-LR-pi-03-REDO.MAY/1870-01-01 
     179INITPATH=$PATH_TO_RESTART/piControl 
    180180 
    181181#--- Specific values for each member (overule default) --- 
     
    184184}}} 
    185185 
    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 }}} 
     186In 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 
     191If 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. 
     195active=y 
     196 
     197#--- Default values for all members --- 
     198# name of the ensemble (used to create root directory) 
     199NAME= CM618-LR-volc-pinatubo-full 
     200# default length for all simulations 
     201LENGTH=10Y 
     202# Default start date for all simulations 
     203STARTDATE=19900601 
     204# Experiment name to find all restart files (and default one for non-periodic) 
     205INITFROM=CM61-LR-pi-03 
     206# Restart root directory 
     207INITPATH=$PATH_TO_RESTART/piControl 
     208 
     209#--- Specific values for each member (overule default) --- 
     210# list of corresponding restart dates 
     211RESTART_NONPERIODIC=(18700531 18810531) 
     212 
     213### Optional options (use default values if not filled) ### 
     214# list of start dates for all simulations 
     215NONPERIODIC=(19910601 19910601) 
     216# simulation name to restart for each simulation. IF empty all simulations will use INITFROM one. 
     217INITFROM_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. 
     219INITPATH_NONPERIODIC=(path/to/simu1 path/to/simu2) 
     220# length of each simulation. If empty all simulations duration will be the default LENGTH option. 
     221LENGTH_NONPERIODIC=(10Y 50Y) 
     222}}} 
     223 
     224[[NoteBox(warn,For list-variables: use blank between values (no coma).)]]  
    194225 
    195226 
     
    203234 
    204235 
    205 '''NOTE: ''' It is MANDATORY that "NAME" in ensemble.card is the same of !JobName in config.card 
     236**NOTE:** It is MANDATORY that "NAME" in ensemble.card is the same of !JobName in config.card 
    206237!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. 
    207238 
     
    222253CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1979  [[BR]] 
    223254 
    224 {{{ 
     255{{{#!bash 
    225256#################################################################################### 
    226257[Ens_PERTURB] 
     
    284315 
    285316 
    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. 
     317The directory in which the start date is retrieved is given by `INITPATH` and `INITFROM`.[[BR]] 
     318For this example restart is from experiment '''CM61-LR-nudgSSTSire-r1-2DERS-m''' in directory $directory/IGCM_OUT/IPSLCM6/DEVT/historical 
     319 
     320 
     321The way the perturbed member is generated depends on `PERTURB_BIN` array. 
    292322The 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. 
    293323 
    294324In 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_BIN should look like this : [[BR]] 
    296  
    297 {{{ 
     325`PERTURB_BIN` should look like this : [[BR]] 
     326 
     327{{{#!bash 
    298328PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1) 
    299329}}} 
     
    306336 * the randomly generated perturbation is in [-.05;+0.05] degrees 
    307337 
    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]] 
    309339This 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''' 
    310340 
    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]]  
     341For each member a new restart file for the coupler will be generated using the executable ''AddNoise'' to add some randomly generated temperature perturbation.[[BR]]  
    312342 
    313343The corresponding restart file of each member will be stored in  
    314 {{{ 
     344{{{#!bash 
    315345  directory/IGCM_IN/dcppA-hindcast/dcppA-hindcast/CPL/Restart/ 
    316346}}} 
    317347 
    318348The perturbation executable must be ''!AddNoise''. 
    319 {{{ 
     349{{{#!bash 
    320350PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1) 
    321351}}} 
     
    323353 
    324354Once [#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 
    326356ins_job -e # Check and complet job's header 
    327357}}} 
    328358 
    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 
     361Once 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]] 
     362You can use Qsub.''xxx''.sh (at the !JobName directory level) to launch at same time ALL jobs: 
     363{{{#!bash 
     364sh Qsub.''xxx''.sh 
     365}}} 
     366 
     367If 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)]]