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.
user/ctlod/NVTKpage – NEMO
wiki:user/ctlod/NVTKpage

Version 4 (modified by ctlod, 16 years ago) (diff)

--

NEMO Validation Tool Kit

The full documentation is attached at the end of this page.

Context: the user made modifications in few modules of the NEMO code; he wants to check if these changes alter basic features such as the reproductibility, the restartability, the global memory and/or the time consuming and/or even results of the reference configurations ORCA2_LIM, GYRE and GYRE_LOBSTER.

The NEMO Validation Tool Kit (NVTK hereinafter) has been built to allow the user to perform a set of validation tests simply and quickly in using few commands. Here are summarised basic steps the user has to go through:

  1. Download and install the NVTK environment (to be done once)
  2. Compilation, job submission and assessment report

The user has to refer to the associated documentation to get details about the general organisation and scripts. Here we suppose the platform used is either the NEC-SX8 either the IBM-SP4 from the French computing center IDRIS, else the user will have to adapt some scripts (following instructions in part II-d Add a new target ?) once the NVTK environment will be downloaded.

A - Download and Install NVTK:


a. Downloading

  1. Download the modipsl architecture and the latest NEMO code under the TEST directory.
    > mkdir TEST
    > cd TEST
    > svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl                      (download the modipsl structure)
    > cd modipsl/util
    

Edit the mod.def file and change following lines:
#-C- NEMO tags/nemo_v2_3/AGRIF HEAD 7 . modeles
#-C- NEMO tags/nemo_v2_3/NEMO HEAD 7 . modeles
#-C- NEMO tags/nemo_v2_3/UTIL HEAD 7 . modeles
#-C- NEMO tags/nemo_v2_3/CONFIG/GYRE HEAD 7 GYRE config
#-C- NEMO tags/nemo_v2_3/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config

with

#-C- NEMO trunk/AGRIF HEAD 7 . modeles
#-C- NEMO trunk/NEMO HEAD 7 . modeles
#-C- NEMO trunk/UTIL HEAD 7 . modeles
#-C- NEMO trunk/CONFIG/GYRE HEAD 7 GYRE config
#-C- NEMO trunk/CONFIG/GYRE_LOBSTER HEAD 7 GYRE_LOBSTER config
#-C- NEMO trunk/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config

> ./model NEMO  		(download the trunk of NEMO code)
  1. 2 directories must be downloaded under the TEST/modipsl/config directory: VALID & HEAD.
    > cd ../config
    > svn co http://forge.ipsl.jussieu.fr/nemo/svn/trunk/VALID
    > svn co http://forge.ipsl.jussieu.fr/nemo/svn/trunk/HEAD
    

If a passwd is asked, type "Enter button" and use as login: "nemo_user" and the NEMO user classical passwd.

  1. For MAC users only

In the ./modipsl/util/AA_make.gdef:

  • Set the good directory pathnames for NetCDF library through NCDF_INC and NCDF_LIB variables
  • Eventually change the compilator name if other than "xlf"
  • change M_K=make into M_K=gmake

In the ./modipsl/util/w_i_h script, transform the "DSYS="Darwin"" name into "DSYS="osxxlf"" if you are using the xlf compiler.
Under your OS, if you only have the "make" command, you will have to be able to use gmake one in executing following commands:

> which make
> /usr/bin
> cd /usr/bin
> sudo ln -s make gmake

b. Installing
User has to fill following variables in the ins_valid.ksh script header under the ./modipsl/config/VALID/2INSTALL/ directory:

> cd config/VALID/2INSTALL
> vi ins_valid.ksh

##########################################################
##### Begin Users modifications
##########################################################
# OUTDIR : working directory from which jobs will be launched & results stored
# INPUTD : directory where to get ORCA2_LIM_nemo_v3.tar (to download here: http://dodsp.idris.fr/reee512/NEMO/)
# REFDAT : directory where to get results from reference tags
# DECOMP : total number of processors which will be used
# MAIL : give your e-mail
# UAGRIF : one of the standard configurations is based on AGRIF yes/no
##########################################################
OUTDIR=
INPUTD=
REFDAT=
DECOMP=
MAIL="your_email@xxxxxxx"
UAGRIF=no
##########################################################
##### End Users modifications
##########################################################

  1. Once the ins_valid.ksh header is changed, go under VALID/2INSTALL directory and execute the script.
> cd  VALID/2INSTALL
> ./ins_valid.ksh
  1. Set the appropriate domain decomposition values for jpni, jpnj & jpnij parameters. To be done in par_oce.F90_keep file under each ./config/CONFIG_NAME/MY_SRC directory
> cd  ./config/CONFIG_NAME/MY_SRC/
> vi par_oce.F90_keep

.......

INTEGER, PUBLIC, PARAMETER
& !:
jpni = 2, & !: number of processors following i
jpnj = 4, & !: number of processors following j
jpnij = 8 !: nb of local domain = nb of processors
! ! ( <= jpni x jpnj )
.......

B - Compilation, Jobs submission and assessment report:

This could be performed in using just one command as just below or in managing each step separately “by hand” (see documentation).

  1. store modified modules (to test) under ./modipsl/config/HEAD/2TEST
  1. set the following 7 variables in the ./modipsl/config/HEAD/Makefile file:
> cd ./config/HEAD
> vi Makefile
  • NAM_V: name of the test (this information will be used in the assessment report at the end of all simulations)
  • LISTE_CONF: ORCA2_LIM or/and GYRE or/and GYRE_LOBSTER: name of standard configurations to be tested with modified routines under 2TEST directory
  • JOBS_2LAUN: nojob or all or long or short or gtime: choose the job type to launch
  • BUILD_MAKE: mon or/and mpi or/and omp: compilation type to perform:mono-processor (mon) and/or multi-processors MPI (mpi) and/or Open-MP (omp) (this list is applied to each configuration specified in the LISTE_CONF variable). If mpi is specified, the user must set the processor cutting (jpni, jpnj & jpnij parameters) in the par_oce.F90_keep module stored in each ./config/CONFIG_NAME/MY_SRC directory. This MPI decomposition must be the same for the 3 configurations
  • MAK_TIME: timing or notiming to perform or not a timing check
  • MAK_MEMO: memo or nomemo to perform or not a memory check
  • REF_TAGV: (optional) reference tag version to which compare results
  1. launch the whole process (compilation, jobs submission & assessment report) using gmake command from ./modipsl/config/HEAD/2TEST
> cd ./config/HEAD/
> gmake

Note: since this environment has been built to use UNIX multi-process possibilities, it is possible to speed-up the compilation in using the gmake option -j :“gmake -j number_of_configurations_to_compile”

C - Paper documentation

Attachments (1)

Download all attachments as: .zip