usage of SETTE package: INSTALLATION: The sette directory have to be located in the main directory (at the same level as src/ or cfg/). PRINCIPAL SCRIPT: sette.sh * sette.sh is a simple wrapper that runs tests on the reference configurations, test cases and generates the report at the end. * sette.sh is able to take a list of configurations in argument (sette.sh -t "CFG1 CFG2 CFG3"). - The list of available configurations is available in running ./sette_list_avail_cfg.sh. - The default for sette is to run all of the reference and test configurations. * Users need to set up the param.cfg file correctly and download input files before running the script. SECONDARY SCRIPT * sette_reference-configuration.sh runs sette tests on the reference configurations * sette_test-cases.sh runs sette tests on test cases * sette_list_avail_rev.sh generates a listing on all the revisions available in the validation directory for each configuration. * sette_list_avail_cfg.sh generates a listing of all the available configurations. * sette_rpt.sh generates the report USER SETUP (recommended) * in param.cfg : - variables (COMPILER, NEMO_VALIDATION_REF, NEMO_REV_REF) have to be specified in param.cfg - variables (BATCH_CMD, BATCH_STAT, BATCH_NAME, FORCING_DIR, SVN_CMD, ADD_NOSIGNEDZERO) 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. If you prefer not doing so, you need to update the default initialisation - 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). - description of variables listed in param.cfg: COMPILER : compiler among those available in NEMOGCM/ARCH # # reference version for bit reproducibility results NEMO_VALIDATION_REF : reference directory NEMO_REV_REF : reference revision # # batch command needed BATCH_CMD : command for job submission in batch mode BATCH_STAT : command to check job status BATCH_NAME : generic sette job name (as it appears with $BATCH_STAT command) # # file storing FORCING_DIR : directory where is stored input.tar file (same name in input_CONFIG_NAME.cfg) reference configuration input tar file could be found here : https://zenodo.org/record/1472245 NEMO_VALIDATION_DIR : directory where is stored restarts, run.stat, tracer.stat and ocean.output files for each configuration ( NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE) ) INPUT_DIR : directory where is stored input files (DO NOT CHANGE IT) # # misc. SVN_CMD : svn command use to do svn info (default svn). Could be useful if you are using git svn : Reference directory for result comparison will be NEMO_VALIDATION_REF/COMPILER/NEMO_REV_REF ADD_NODIGNEDZERO : set "yes" if you need key_nosignedzero to run nemo USAGE of main scripts: * sette.sh : it is a simple wrapper to run tests on the reference configurations, test-cases and generate the report at the end. - if no argument is given, sette run all the reference configurations and test cases - if a list of argument is provided (sette.sh -t "CFG1 CFG2 CFG3"), sette will only run these configurations. The list of available configurations is available in running ./sette_list_avail_cfg.sh. - user need to set up the param.cfg file correctly and download input file before running the script. * sette_rpt.sh : it generates the sette report. - if no argument is given, the report will be generated on the last changed revision. - if an argument is given (revision number) the report will be generated for this revision only - if 'old' is given as argument the former behavior is applied (the latest revision is check whatever the current revision - it is possible to retreive all the available revision test using sette_list_avail_rev.sh - it is NOT possible to run sette_rpt.sh for a single configuration. * sette_list_avail_rev.sh : generate a listing on all the revisions available in the validation directory for each configuration. - no argument needed * sette_list_avail_cfg.sh : generate a listing of all the available configurations. - no argument needed NOTES: * compilation issues: - in case of error you can remove you NEW_CONF directory and all files doing : ./makenemo -n MY_CONFIG clean_config - if you want recompile nemo but before you want to clean compiled code do : ./makenemo clean - if you have already compiled you can re-run all sette.sh and compilation part will be by-passed. * verbose sette output: - if you want a completly verbose makenemo you can uncomment "set -x" in makenemo script and then launch ./sette.sh 2>&1 | tee out.sette . This creates out.sette file in ${SETTE_DIR} TO ADD NEW CONFIGURATION: 1. makenemo -n NEW_CONFIG (see makenemo -h for help) OR 2. makenemo -n NEW_CONFIG -r REF_CONFIG (if it is based on another reference configuration) 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) 4. add a bloc in one of the sette_reference-configuration.sh or sette_test-cases.sh script 5. add your configuration to the list in param.cfg TO ADD NEW MACHINE: 1. add arch-compiler.fcm in NEMOGCM/ARCH directory 2. makenemo -m new_compiler (see makenemo -h for help) 3. add new batch-file TO ADD NEW BATCH-FILE: 1. see in SETTE/BATCH_TEMPLATE directory existing examples 2. create you own batch file like: batch-${COMPILER} (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") USER MODIFICATIONS (sequential/parrallel (default), interacive or not (default) and mpi (default) or not ) * in sette_cfg-ref.sh and sette_test-cases.sh script : - BATCH_COMMAND_PAR is the command for job submission in batch mode parallel (MMIÂ) specified in param.cfg - BATCH_COMMAND_SEQ is the command for job submission in batch mode sequential (NB_PROC = 1) the default value is the BATCH_COMMAND_PAR value - INTERACT_FLAG : "yes" if you want to run in interactive mode "no" if you want to run in batch mode (default) - MPIRUN_FLAG : "yes" if you want to run in parallel (MPI) (default) "no" if you want to run in sequential mode (NB_PROC = 1) USAGE of internal function/script * makenemo -m : machine (compilator); see ./makenemo -m help (in NEMOGCM/CONFIG directory) -n : config name (in examples config_name_nproci_nprocj), see ./makenemo -n help -r : reference configuration (if you don't give it you have to choise directories to install) add_key : to add list of keys del_key : to del list of keys and for more details and options of makenemo see ./makenemo -h * set_namelist : to set namelist values (example : to set 75 time steps for one test : namelist nn_itend 75) ( : to change cn_icerst_in name : namelist_ice cn_icerst_in \"test_00101231_restart_icemod\") ( : to activate control print : namelist ln_ctl false ) * prepare_exe_dir.sh : creates execution directory for each test - for EACH JOB EXECUTION it is needed to set TEST_NAME variable - TEST_NAME variable gives name to execution directory (created in prepare_exe_dir.sh) - It is mandatory to have different TEST_NAME for each job run if not existing files are re-written (for example namelist) * prepare_job.sh : generates the script to be executed - input arguments are INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPIRUN_FLAG JOB_FILE * fcm_job.sh : input arguments are TOTAL_NUMBER_OF_PROCS_used JOB_FILE_NAME INTERACT_FLAG MPIRUN_FLAG (for example if you run with 4 procs JOB_FILE batch parallel and only run short test ===> ./fcm_job 4 SHORT no yes ) - IMPORTANT control that name of tar file in FORCING directory is the same of that in input_REF_CONFIG.cfg, if not change one. - change in "RUN OPA" if [ ${INTERACT_FLAG} == "yes" ] mpirun command line (some examples are already written) - if INTERACT_FLAG="no" it is needed a batch_file (see below to create a new one)