source: utils/CI/sette_ticket2459 @ 13381

Name Size Rev Age Author Last Change
../
BATCH_TEMPLATE 12798   7 months gsamson add corresponding Mercator SETTE batch templates (arch files added at …
OLD_SCRIPT 11161   18 months mathiot merge fix_sette_ticket2239 : major simplification/improvement of SETTE …
all_functions.sh 21.2 KB 12888   7 months mathiot ticket #2459: change SPITZ12 by WED025 + minor bug fix in the sync option …
fcm_job.sh 2.1 KB 3635   8 years acc Branch dev_NOC_2012_r3555. #1006. Step 13: Merge in trunk changes between …
input_AGRIF.cfg 76 bytes 13378   4 months mathiot ticket
input_AMM12.cfg 26 bytes 9579   3 years nicolasmartin Updating of the forcing archives names to prepare the release of v4.0
input_EMPTY.cfg 0 bytes 9522   3 years clem debug test cases
input_GYRE.cfg 1 bytes 2354   10 years flavoni first draft for SETTE (SET tests for NEMO), a new version of NVTK, see …
input_ICE_AGRIF.cfg 37 bytes 13378   4 months mathiot ticket
input_ISOMIP+.cfg 30 bytes 12878   7 months mathiot ticket 2459: upgrade ISOMIP to ISOMIP+
input_ORCA2_ICE_AGRIF.cfg 34 bytes 9663   3 years clem change the names of the configurations (1st step)
input_ORCA2_ICE_OBS.cfg 37 bytes 13378   4 months mathiot ticket
input_ORCA2_ICE_PISCES.cfg 37 bytes 13378   4 months mathiot ticket
input_ORCA2_OFF_PISCES.cfg 37 bytes 13378   4 months mathiot ticket
input_SAS.cfg 62 bytes 13378   4 months mathiot ticket
input_WED025.cfg 28 bytes 12888   7 months mathiot ticket #2459: change SPITZ12 by WED025 + minor bug fix in the sync option …
iodef_sette.xml 9.3 KB 9931   2 years smasson sette: reactivate predefined zoom with xios2, see #2115
param.cfg 3.9 KB 13378   4 months mathiot ticket
prepare_exe_dir.sh 2.0 KB 11161   18 months mathiot merge fix_sette_ticket2239 : major simplification/improvement of SETTE …
prepare_job.sh 14.1 KB 13378   4 months mathiot ticket
README.rst 8.6 KB 12569   9 months mathiot ticket #2304: merge branch sette_ticket2304 into sette (thank you Simon …
SETTE.pdf 71.1 KB 3608   8 years acc Branch dev_NOC_2012_r3555. #1006. Step 3: Merge in trunk changes between …
sette.sh 2.6 KB 13378   4 months mathiot ticket
sette_list_avail_cfg.sh 493 bytes 12888   7 months mathiot ticket #2459: change SPITZ12 by WED025 + minor bug fix in the sync option …
sette_list_avail_rev.sh 2.3 KB 12569   9 months mathiot ticket #2304: merge branch sette_ticket2304 into sette (thank you Simon …
sette_reference-configurations.sh 55.9 KB 13380   4 months mathiot ticket #2459: restore change for personal tests
sette_rpt.sh 16.1 KB 13381   4 months mathiot ticket #2459: clean list of config for result comparison (remove duplicate …
sette_test-cases.sh 29.4 KB 13378   4 months mathiot ticket

README.rst

======================
usage of SETTE package
======================

INSTALLATION
============
* checkout the code as follow:
.. code-block:: console

        $ svn checkout http://forge.ipsl.jussieu.fr/nemo/svn/utils/CI/sette sette

* The sette directory have to be located in the main directory (at the same level as ``src/`` or ``cfg/``).

MASTER 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 n option, 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 (NEMO_VALIDATION_REF, NEMO_REV_REF) have to be specified in param.cfg
      - variables SETTE_(COMPILER, USING_XIOS, USING_MPMD, JOB_PREFIX_MPMD, JOB_PREFIX_NOMPMD, BATCH_CMD, BATCH_STAT, BATCH_NAME, FORCING_DIR, SVN_CMD, NEMO_VALIDATION_DIR, 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 (SETTE_):
                
        # reference version for bit reproducibility results
          |  NEMO_VALIDATION_REF : reference directory
          |  NEMO_REV_REF        : reference revision
                
        # compiler information
          |  COMPILER            : compiler among those available in NEMOGCM/ARCH
                
        # XIOS management
          |  USING_XIOS        : flag to control the activation of key_iomput. 
                                "yes" to compile using key_iomput and link to the external XIOS library.
                                "no"  to compile without key_iomput and link to the old IOIPSL library.
          |  USING_MPMD        : flag to control the use of stand-alone IO servers 
                                (requires USING_XIOS="yes").
                                "yes" to run in MPMD (detached) mode with stand-alone IO servers.
                                "no"  to run in SPMD (attached) mode without separate IO servers. 
        # generique batch scrip prefix name if MPMD set to true/false
           | JOB_PREFIX_MPMD
           | JOB_PREFIX_NOMPMD
                
        # 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.
          - user can enforce synchronisation (-s option) of the existing CFG_ST with the REF configuration (EXPREF and MY_SRC). 
          - user can enforce cleaning of the CFG_ST configuration (use of makenemo -n CFG_ST clean) (-c option)
* ``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
          - XXXXX+ means sette results for revision XXXXX contain local modification in src/cfgs/test
          - 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
          - XXXXX+ means sette results for revision XXXXX contain local modification in src/cfgs/test
* ``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 your 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. 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)
2. add a bloc in one of the ``sette_reference-configuration.sh`` or ``sette_test-cases.sh`` script 
3. 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}`` file
   (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")

EXTRA SETTING POSSIBLE
======================
Among the setting that can be modified by the user in sette_cfg-ref.sh and sette_test-cases.sh script,
there are: sequential/parrallel (default), interacive or not (default) and mpi (default) or not.
  - | BATCH_COMMAND_PAR is the command for job submission in batch mode parallel (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).
Note: See TracBrowser for help on using the repository browser.