New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
README in NEMO/branches/2019/fix_sette_ticket2239 – NEMO

source: NEMO/branches/2019/fix_sette_ticket2239/README @ 10769

Last change on this file since 10769 was 10769, checked in by mathiot, 5 years ago

add script to print available cfgs, update README, add the name of COMPILER used in the report

File size: 7.2 KB
Line 
1usage of SETTE package:
2
3PRINCIPAL SCRIPT: sette.sh
4 * sette.sh is a simple wrapper running test on the reference configuration, test cases and generate the report at the end.
5 * sette.sh is able to take a list of configuration in argument (sette.sh -t "CFG1 CFG2 CFG3"). The list of available configurations is available in running ./sette_list_avail_cfg.sh.
6   The default for sette is to run all of the reference and test configurations.
7 * User need to set up the param.cfg file correctly and download input file before running the script.
8
9SECONDARY SCRIPT
10 * sette_reference-configuration.sh: run sette tests on the reference configurations
11 * sette_test-cases.sh             : run sette tests on test cases
12 * sette_rpt.sh                    : generate the sette report on reproducibility, restartability and compare result with a reference (if there is one specified in param.cfg).
13                                     See below in USER MODIFICATIONS the usage of the script
14 * sette_list_avail_rev.sh         : generate a listing on all the revision available in the validation directory for each configuration.
15 * sette_list_avail_cfg.sh         : generate a listing of all the available configurations.
16
17VERY IMPORTANT : for a verbose debug do:
18./sette.sh 2>&1 | tee out.sette
19this create out.sette file in ${SETTE_DIR}
20
21USER MODIFICATIONS
22 * in sette_reference-configuration.sh and sette_test-cases.sh script :
23               OPTIONAL ARGUMENT : compiler among those available in NEMOGCM/ARCH (if nothing will use the one specified in paramd.cfg)
24          BATCH_COMMAND_PAR : command for job submission in batch mode parallel (MMIÂ) specified in param.cfg
25          BATCH_COMMAND_SEQ : command for job submission in batch mode sequential (NB_PROC = 1)
26                                   default value is the BATCH_COMMAND_PAR value
27          INTERACT_FLAG : "yes" if you want to run in interactive mode
28                      "no" if you want to run in batch mode
29          MPIRUN_FLAG   : "yes" if you want to run in parallel (MPI)
30                "no" if you want to run in sequential mode (NB_PROC = 1)
31
32               makenemo -m : machine (compilator); see ./makenemo -m help (in NEMOGCM/CONFIG directory)
33                        -n : config name (in examples config_name_nproci_nprocj), see ./makenemo -n help
34                        -r : reference configuration (if you don't give it you have to choise directories to install)
35                        add_key : to add list of keys
36                        del_key : to del list of keys
37               and for more details and options of makenemo see ./makenemo -h
38
39          set_namelist : to set namelist values
40         (example : to set 75 time steps for one test : namelist nn_itend 75)
41         (        : to change cn_icerst_in name : namelist_ice cn_icerst_in  \"test_00101231_restart_icemod\")
42         (      : to activate control print : namelist ln_ctl false )
43          prepare_exe_dir.sh creates execution directory for each test
44                    : NOTE for EACH JOB EXECUTION it is needed to set TEST_NAME variable
45                TEST_NAME variable gives name to execution directory (created in prepare_exe_dir.sh)
46                IT is mandatory to have different TEST_NAME for each job run if not existing files are re-written (for example namelist)
47
48               prepare_job.sh generates the script to be executed
49         input: INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPIRUN_FLAG JOB_FILE
50
51               fcm_job.sh needs input: TOTAL_NUMBER_OF_PROCS_used JOB_FILE_NAME INTERACT_FLAG MPIRUN_FLAG
52         (for example if you run with 4 procs JOB_FILE batch parallel
53         and only run short test ===> ./fcm_job 4 SHORT no    yes   )
54
55 * in param.cfg :
56               COMPILER            : compiler among those available in NEMOGCM/ARCH
57               FORCING_DIR       : directory in which will be found input.tar file (same name in input_CONFIG_NAME.cfg)
58               INPUT_DIR         : directory in which store input files (tar file)
59                                     reference configuration input tar file could be found here : https://zenodo.org/record/1472245
60               TEST_CONFIGS        : the list of all the configuration to test in sette.sh (without any arguments)
61               TMPDIR            : temporary directory NEEDED ONLY FOR IBM machines (put EXP00 directory)
62          NEMO_VALIDATION_DIR : directory in which create NEMO_VALIDATION tree, and store restart, run.stat, tracer.stat and ocean.output files in
63                            tree NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE)
64               BATCH_CMD           : command for job submission in batch mode
65               SVN_CMD             : svn command use to do svn info (default svn). Could be useful if you are using git svn
66               NEMO_VALIDATION_REF : reference directory
67               NEMO_REV_REF        : reference revision
68                                     reference directory for result comparison will be NEMO_VALIDATION_REF/COMPILER/NEMO_REV_REF
69               ADD_NODIGNEDZERO    : set "yes" if you need key_nosignedzero to run nemo
70               As a lot of this settings are user dependent or computer dependant, it is possible to set by default most of these value in your .bashrc
71               (it facilitates the installation of sette for a new branch)
72
73 * in fcm_job.sh :
74               IMPORTANT : control that name of tar file in FORCING directory
75               is the same of that in input_REF_CONFIG.cfg, if not change one.
76
77               change in "RUN OPA" if [ ${INTERACT_FLAG} == "yes" ] mpirun command line (some examples are already written)
78          NOTE: if INTERACT_FLAG="no" it is needed a batch_file (see below to create a new one)
79
80 * in sette_rpt.sh : - if no argument are given, the report will be generated on the last changed revision.
81                     - if an argument is given (revision number) the report will be generated for this revision
82                     - if 'old' is given as argument the former behavior is applied (the latest revision is check whatever the current revision
83                     - it is possible to retreive all the available revision test using sette_list_avail_rev.sh
84
85NOTE:
86in case of error you can remove you NEW_CONF directory and all files doing :
87./makenemo -n MY_CONFIG clean_config
88
89if you want recompile nemo but before you want to clean compiled code do :
90./makenemo clean
91
92and if you have already compiled you can re-run all sette.sh and compilation part will be by-passed.
93
94NOTE 2:
95if you want a completly verbose makenemo you can uncomment "set -x" in makenemo script
96and then launch ./sette.sh 2>&1 | tee out.sette
97
98TO ADD NEW CONFIGURATION:
991. makenemo -n NEW_CONFIG (see makenemo -h for help) OR
1002. makenemo -n NEW_CONFIG -r REF_CONFIG (if it is based on another reference configuration)
1013. 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)
102
103TO ADD NEW MACHINE:
1041. add arch-compiler.fcm in NEMOGCM/ARCH directory
1052. makenemo -m new_compiler  (see makenemo -h for help)
1063. add new batch-file
107
108TO ADD NEW BATCH-FILE:
1091. see in SETTE/BATCH_TEMPLATE directory existing examples
1102. create you own batch file like: batch-${COMPILER}
111   (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")
Note: See TracBrowser for help on using the repository browser.