1 | usage of SETTE package: |
---|
2 | |
---|
3 | INSTALLATION: |
---|
4 | The sette directory have to be located in the main directory (at the same level as src/ or cfg/). |
---|
5 | |
---|
6 | PRINCIPAL SCRIPT: sette.sh |
---|
7 | * sette.sh is a simple wrapper that runs tests on the reference configurations, test cases and generates the report at the end. |
---|
8 | * sette.sh is able to take a list of configurations in argument (sette.sh -t "CFG1 CFG2 CFG3"). |
---|
9 | - The list of available configurations is available in running ./sette_list_avail_cfg.sh. |
---|
10 | - The default for sette is to run all of the reference and test configurations. |
---|
11 | * Users need to set up the param.cfg file correctly and download input files before running the script. |
---|
12 | |
---|
13 | SECONDARY SCRIPT |
---|
14 | * sette_reference-configuration.sh runs sette tests on the reference configurations |
---|
15 | * sette_test-cases.sh runs sette tests on test cases |
---|
16 | * sette_list_avail_rev.sh generates a listing on all the revisions available in the validation directory for each configuration. |
---|
17 | * sette_list_avail_cfg.sh generates a listing of all the available configurations. |
---|
18 | * sette_rpt.sh generates the report |
---|
19 | |
---|
20 | USER SETUP (recommended) |
---|
21 | * in param.cfg : |
---|
22 | - variables (COMPILER, NEMO_VALIDATION_REF, NEMO_REV_REF) have to be specified in param.cfg |
---|
23 | - variables (BATCH_CMD, BATCH_STAT, BATCH_NAME, FORCING_DIR, SVN_CMD, ADD_NOSIGNEDZERO) |
---|
24 | can be exported from your shell startup files. It is advise to setup the default value in your startup file if it doesn't fit your need. |
---|
25 | If you prefer not doing so, you need to update the default initialisation |
---|
26 | - variable NEMO_VALIDATION_DIR is sette by default in MAIN_DIR/NEMO_VALIDATION (this is to avoid overwritting results when running sette on different branches). |
---|
27 | - description of variables listed in param.cfg: |
---|
28 | COMPILER : compiler among those available in NEMOGCM/ARCH |
---|
29 | # |
---|
30 | # reference version for bit reproducibility results |
---|
31 | NEMO_VALIDATION_REF : reference directory |
---|
32 | NEMO_REV_REF : reference revision |
---|
33 | # |
---|
34 | # batch command needed |
---|
35 | BATCH_CMD : command for job submission in batch mode |
---|
36 | BATCH_STAT : command to check job status |
---|
37 | BATCH_NAME : generic sette job name (as it appears with $BATCH_STAT command) |
---|
38 | # |
---|
39 | # file storing |
---|
40 | FORCING_DIR : directory where is stored input.tar file (same name in input_CONFIG_NAME.cfg) |
---|
41 | reference configuration input tar file could be found here : https://zenodo.org/record/1472245 |
---|
42 | NEMO_VALIDATION_DIR : directory where is stored restarts, run.stat, tracer.stat and ocean.output files for each configuration |
---|
43 | ( NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE) ) |
---|
44 | INPUT_DIR : directory where is stored input files (DO NOT CHANGE IT) |
---|
45 | # |
---|
46 | # misc. |
---|
47 | SVN_CMD : svn command use to do svn info (default svn). Could be useful if you are using git svn |
---|
48 | : Reference directory for result comparison will be NEMO_VALIDATION_REF/COMPILER/NEMO_REV_REF |
---|
49 | ADD_NODIGNEDZERO : set "yes" if you need key_nosignedzero to run nemo |
---|
50 | |
---|
51 | USAGE of main scripts: |
---|
52 | * sette.sh : it is a simple wrapper to run tests on the reference configurations, test-cases and generate the report at the end. |
---|
53 | - if no argument is given, sette run all the reference configurations and test cases |
---|
54 | - if a list of argument is provided (sette.sh -t "CFG1 CFG2 CFG3"), sette will only run these configurations. |
---|
55 | The list of available configurations is available in running ./sette_list_avail_cfg.sh. |
---|
56 | - user need to set up the param.cfg file correctly and download input file before running the script. |
---|
57 | * sette_rpt.sh : it generates the sette report. |
---|
58 | - if no argument is given, the report will be generated on the last changed revision. |
---|
59 | - if an argument is given (revision number) the report will be generated for this revision only |
---|
60 | - if 'old' is given as argument the former behavior is applied (the latest revision is check whatever the current revision |
---|
61 | - it is possible to retreive all the available revision test using sette_list_avail_rev.sh |
---|
62 | - it is NOT possible to run sette_rpt.sh for a single configuration. |
---|
63 | * sette_list_avail_rev.sh : generate a listing on all the revisions available in the validation directory for each configuration. |
---|
64 | - no argument needed |
---|
65 | * sette_list_avail_cfg.sh : generate a listing of all the available configurations. |
---|
66 | - no argument needed |
---|
67 | |
---|
68 | NOTES: |
---|
69 | * compilation issues: |
---|
70 | - in case of error you can remove you NEW_CONF directory and all files doing : |
---|
71 | ./makenemo -n MY_CONFIG clean_config |
---|
72 | - if you want recompile nemo but before you want to clean compiled code do : |
---|
73 | ./makenemo clean |
---|
74 | - if you have already compiled you can re-run all sette.sh and compilation part will be by-passed. |
---|
75 | * verbose sette output: |
---|
76 | - if you want a completly verbose makenemo you can uncomment "set -x" in makenemo script |
---|
77 | and then launch ./sette.sh 2>&1 | tee out.sette . This creates out.sette file in ${SETTE_DIR} |
---|
78 | |
---|
79 | TO ADD NEW CONFIGURATION: |
---|
80 | 1. makenemo -n NEW_CONFIG (see makenemo -h for help) OR |
---|
81 | 2. makenemo -n NEW_CONFIG -r REF_CONFIG (if it is based on another reference configuration) |
---|
82 | 3. for fcm_job.sh creates a new input_NEW_CONFIG.cfg if you need tar file (if you use same tar file of GYRE, ORCA2_LIM or ORCA2_LIM_PISCES you can use it) |
---|
83 | 4. add a bloc in one of the sette_reference-configuration.sh or sette_test-cases.sh script |
---|
84 | 5. add your configuration to the list in param.cfg |
---|
85 | |
---|
86 | TO ADD NEW MACHINE: |
---|
87 | 1. add arch-compiler.fcm in NEMOGCM/ARCH directory |
---|
88 | 2. makenemo -m new_compiler (see makenemo -h for help) |
---|
89 | 3. add new batch-file |
---|
90 | |
---|
91 | TO ADD NEW BATCH-FILE: |
---|
92 | 1. see in SETTE/BATCH_TEMPLATE directory existing examples |
---|
93 | 2. create you own batch file like: batch-${COMPILER} |
---|
94 | (note: sette_test-cases.sh and sette_cfg-ref.sh will copy it in job_batch_template if you run tests in INTERACT_FLAG="no") |
---|
95 | |
---|
96 | |
---|
97 | |
---|
98 | |
---|
99 | |
---|
100 | USER MODIFICATIONS (sequential/parrallel (default), interacive or not (default) and mpi (default) or not ) |
---|
101 | * in sette_cfg-ref.sh and sette_test-cases.sh script : |
---|
102 | - BATCH_COMMAND_PAR is the command for job submission in batch mode parallel (MMIÂ) specified in param.cfg |
---|
103 | - BATCH_COMMAND_SEQ is the command for job submission in batch mode sequential (NB_PROC = 1) |
---|
104 | the default value is the BATCH_COMMAND_PAR value |
---|
105 | - INTERACT_FLAG : "yes" if you want to run in interactive mode |
---|
106 | "no" if you want to run in batch mode (default) |
---|
107 | - MPIRUN_FLAG : "yes" if you want to run in parallel (MPI) (default) |
---|
108 | "no" if you want to run in sequential mode (NB_PROC = 1) |
---|
109 | |
---|
110 | USAGE of internal function/script |
---|
111 | * makenemo -m : machine (compilator); see ./makenemo -m help (in NEMOGCM/CONFIG directory) |
---|
112 | -n : config name (in examples config_name_nproci_nprocj), see ./makenemo -n help |
---|
113 | -r : reference configuration (if you don't give it you have to choise directories to install) |
---|
114 | add_key : to add list of keys |
---|
115 | del_key : to del list of keys |
---|
116 | and for more details and options of makenemo see ./makenemo -h |
---|
117 | * set_namelist : to set namelist values |
---|
118 | (example : to set 75 time steps for one test : namelist nn_itend 75) |
---|
119 | ( : to change cn_icerst_in name : namelist_ice cn_icerst_in \"test_00101231_restart_icemod\") |
---|
120 | ( : to activate control print : namelist ln_ctl false ) |
---|
121 | * prepare_exe_dir.sh : creates execution directory for each test |
---|
122 | - for EACH JOB EXECUTION it is needed to set TEST_NAME variable |
---|
123 | - TEST_NAME variable gives name to execution directory (created in prepare_exe_dir.sh) |
---|
124 | - It is mandatory to have different TEST_NAME for each job run if not existing files are re-written (for example namelist) |
---|
125 | * prepare_job.sh : generates the script to be executed |
---|
126 | - input arguments are INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPIRUN_FLAG JOB_FILE |
---|
127 | * fcm_job.sh : input arguments are TOTAL_NUMBER_OF_PROCS_used JOB_FILE_NAME INTERACT_FLAG MPIRUN_FLAG |
---|
128 | (for example if you run with 4 procs JOB_FILE batch parallel |
---|
129 | and only run short test ===> ./fcm_job 4 SHORT no yes ) |
---|
130 | - IMPORTANT control that name of tar file in FORCING directory |
---|
131 | is the same of that in input_REF_CONFIG.cfg, if not change one. |
---|
132 | - change in "RUN OPA" if [ ${INTERACT_FLAG} == "yes" ] mpirun command line (some examples are already written) |
---|
133 | - if INTERACT_FLAG="no" it is needed a batch_file (see below to create a new one) |
---|