Changeset 5472 for branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM
- Timestamp:
- 2015-06-24T15:12:16+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/X64_CURIE.cfg
r5402 r5472 8 8 9 9 # Job commands: ccc_* 10 JOB_SUBM= ccc_msub10 JOB_SUBM="ccc_msub ${NEMO_TRUS}/batch/${CFG_ARCH}.sh | awk '{print \$NF}'" 11 11 JOB_LIST=ccc_mpp 12 12 JOB_VIEW=ccc_macct 13 JOB_RCPU="${JOB_VIEW} ${JOB_ID} | awk 'END{print \$9}'" 13 14 JOB_DELE=ccc_mdel 14 15 -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/arch_template.cfg
r5464 r5472 1 # Copy to ./$ ARCH.cfg, fill in according to your installation1 # Copy to ./${CFG_ARCH}.cfg, fill in according to your installation 2 2 3 3 # Super-computer configuration 4 4 5 5 # Available softwares: 6 CDO='' # CDO (Climate Data Operators) 7 # (root directory name in $LOADEDMODULES or $PATH)8 COMPILER='' # ifort/gfortran/pgfortran/...9 # (to get compiler release with command `$COMPILER --version`)10 MPI='' # MPI libraries 11 # ( "" " " "" "" "" "" " " )12 NETCDF='' # NetCDF " " 13 # ( "" " " "" "" "" "" " " )6 CDO='' # CDO (Climate Data Operators) (directory name in $LOADEDMODULES or $PATH) 7 # ex: 'cdo'/'nco'/... 8 COMPILER='' # Fortran compiler (to get compiler release with `$COMPILER --version`) 9 # ex: 'ifort'/'gfortran'/'pgfortran'/... 10 MPI='' # MPI libraries (directory name in $LOADEDMODULES or $PATH) 11 # ex: 'opempi'/'mpich'/... 12 NETCDF='' # NetCDF " " ( " " "" "" "" "" " " ) 13 # ex: 'netcdf42'/'netcdf-parallel'/... 14 14 15 15 # Job commands (works with job ID): 16 16 JOB_SUBM='' # Submit a job && get his ID in return 17 JOB_LIST='' # List all submitted jobs to search for job ID with `grep` 18 JOB_VIEW='' # Get job informations (to fill in a log during computing) 19 JOB_DELE='' # Kill a job (in case of crash or time limit reaching) 17 # ex: "cmd ${NEMO_TRUS}/batch/${CFG_ARCH}.sh | awk '{print \$NF}'" 18 JOB_LIST='' # List all submitted jobs (to determine by `grep` if a job completed or not) 19 JOB_INFO='' # Get job informations with job ID as argument (filling a computation log) 20 JOB_TIME='' # Get real CPU time computation "" " "" "" "" 21 # ex: "${JOB_VIEW} ${JOB_ID} | awk 'END{print \$9}'" 22 JOB_DELE='' # Kill submitted job "" " "" "" "" 20 23 21 24 # Compiling & computing settings 22 25 [ -z "$NPROC" ] && NPROC=1 # Processing units for compilation 23 [ -z "${TIME_LIMI}" ] && TIME_LIMI='' # Utmost time in seconds to wait for finished job 24 # (pending & running) 26 [ -z "${TIME_LIMI}" ] && TIME_LIMI='' # Utmost time in seconds to wait for completed job 25 27 26 28 # Architecture environment (be careful with compliance with XIOS) -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/user_template.cfg
r5402 r5472 1 # Copy to ./ user.cfg, fill in according to your installation1 # Copy to ./${CFG_USER}.cfg, fill in according to your installation 2 2 3 3 # User configuration 4 4 5 # Global Directories:6 DIR_WORK='' # Directory for compilation7 DIR_SCRA='' # " " " " computation to increase perfs on some super-computers8 # (will copy into it all requested forcing input & ".*(cfg|opa|ref|xml)" files)9 DIR_STOR='' # " " for comparison (ASCII output & restart files of reference config)10 5 11 6 # NEMO overall configuration: 12 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN='' # trunk, dev_v3_4_STABLE_2012, ...13 [ -z "${CONF_REFE}" ] && REFE_CONF='' # ORCA2_LIM_PISCES, GYRE, ... 14 [ -z "${CONF_TEST}" ] && TEST_CONF='' # ${CONF_REFE}_trust, ...15 NEMO_HOME='' # NEMOGCM equivalent root directory to find ./ARCH,./CONFIG, ...16 # (${DIR_WORK}/NEMO/${NEMO_BRAN}/NEMOGCM, ...) 7 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN='' # ex: 'trunk', 'dev_v3_4_STABLE_2012', ... 8 NEMO_HOME='' # NEMOGCM directory for computation (./ARCH, ./CONFIG, ...) 9 # ex: ".../NEMO/${NEMO_BRAN}/NEMOGCM", ... 10 [ -z "${CONF_REFE}" ] && REFE_CONF='' # ex: 'ORCA2_LIM_PISCES', 'GYRE', ... 11 [ -z "${CONF_TEST}" ] && TEST_CONF='' # ex: "${CONF_REFE}_trust", ... 17 12 18 13 # Comparatives directories localization: 19 REFE_DIR='' # ${DIR_STOR}/${CONF_REFE}/${NEMO_BRAN} 20 TEST_DIR='' # ${DIR_SCRA}/${CONF_REFE}/${NEMO_BRAN}/trusting_${DATE_STR} 14 REFE_DIR='' # "Standard" folder where previous result files are stored for comparison 15 # ex: ".../${CONF_REFE}/${NEMO_BRAN}" 16 TEST_DIR='' # Test folder for computation 17 # ex: ".../${CONF_REFE}/${NEMO_BRAN}/trusting_${DATE_STR}" 21 18 22 19 # External softs directories: 23 DIR_XIOS='' # ${DIR_WORK}/XIOS/xios-1.024 #DIR_OASI='' # ${DIR_WORK}/OASIS20 DIR_XIOS='' # ex: '.../XIOS/xios-1.0' 21 #DIR_OASI='' # ex: '.../OASIS' 25 22 26 # NEMO inputs (fill in if necessary) 27 NEMO_FORC='' # Directory with forcing archive to extract from ESGF server 28 # or "" all inputs files to copy 29 FORC_TARF='' # Archive name (ORCA2_LIM_nemo_v3.6.tar, ...) 30 # Leave blank if not requested 23 # NEMO inputs 24 NEMO_FORC='' # Directory with forcing archive from DODS/ESGF server to extract 25 # or " " "" all inputs files to copy into ${TEST_DIR} 26 FORC_TARF='' # Archive name (ex: 'ORCA2_LIM_nemo_v3.6.tar', ...), let blank if not requested 31 27 32 # Mailing list to inform of a failure , -p|--publish option required33 [ -z "$ MAIL"] &&MAIL=''28 # Mailing list to inform of a failure (-p|--publish option required) 29 [ -z "$EMAIL"] && EMAIL='' -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.env
r5464 r5472 9 9 #-------------------------------------- 10 10 . ${NEMO_TRUS}/config/${CFG_USER}.cfg 11 export DIR_WORK DIR_SCRA DIR_STOR12 11 export NEMO_HOME NEMO_BRAN 13 12 export REFE_CONF TEST_CONF REFE_DIR TEST_DIR … … 27 26 #-------------------------------------- 28 27 . ${NEMO_TRUS}/config/${CFG_ARCH}.cfg 29 export CDO COMPILER 30 export JOB_SUBM JOB_LIST JOB_VIEWJOB_DELE28 export CDO COMPILER MPI NETCDF 29 export JOB_SUBM JOB_LIST JOB_INFO JOB_TIME JOB_DELE 31 30 export NPROC TIME_LIMI 32 31 export ARCH_ENV -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.sh
r5465 r5472 55 55 #--------------------------------------------------- 56 56 print_step 'Get softwares release' 57 . ${ARCH_ENV} > /dev/null57 [ -e ${ARCH_ENV} ] && . ${ARCH_ENV} > /dev/null 58 58 get_soft_rel 59 59 cat model.log … … 91 91 #--------------------------------------------------- 92 92 print_step 'Submitting job' 93 JOB_ID=$( ${JOB_SUBM} | awk '{print $NF}')93 JOB_ID=$( eval ${JOB_SUBM} ) 94 94 [ $? -ne 0 ] && get_out $STATUS $STEP 95 95 print_step 'Holding-Running job' … … 97 97 print_step 'Job finished' 98 98 99 # Eventual crash during computing99 # Job state 100 100 #--------------------------------------------------- 101 print_step 'Test if job crashed'101 print_step 'Test job state' 102 102 if [[ ! -e ocean.output || $( grep 'E R R O R' ocean.output ) ]]; then 103 103 comments 'E R R O R' 104 104 get_out $STATUS $STEP 105 else 106 # Get time computation 107 #--------------------------------------------------- 108 print_step 'Get real CPU time' 109 get_cpu_time 105 110 fi 106 111 … … 110 115 print_step 'Test ASCII output files diff' 111 116 diff_textfiles 112 if[ "$STATUS" == 'FAILED' ] && get_out $STATUS $STEP117 [ "$STATUS" == 'FAILED' ] && get_out $STATUS $STEP 113 118 114 119 # Inspect output NetCDF files … … 116 121 print_step 'Test last restart NetCDF files diff' 117 122 diff_restart 118 if [ "$STATUS" == 'FAILED' ] && get_out $STATUS $STEP 119 120 # Get computation duration 121 #--------------------------------------------------- 122 print_step 'Get real CPU time' 123 get_cpu_time 123 [ "$STATUS" == 'FAILED' ] && get_out $STATUS $STEP 124 124 125 125 # Get comments (ocean.output & diff model.log) -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh
r5465 r5472 23 23 } 24 24 25 get_cpu_time() {26 # Portability !27 real_cpu_time=$( ${JOB_VIEW} ${JOB_ID} | awk 'END{print $9}' )28 printf "Real CPU time\n${real_cpu_time}\n" | tee mesg_10_realcputime_${CFG_USER}_${CFG_ARCH}.txt29 }30 31 get_inputs() {32 if [ ! -z "${FORC_TAR}" ]; then33 cmd_iol="tar -tvf ${NEMO_FORC}/${FORC_TAR}"; cmd_iof="tar -vxf ${NEMO_FORC}/${FORC_TAR}"34 else35 cmd_iol="ls ${NEMO_FORC}/*" ; cmd_iof="\cp ${NEMO_FORC}/* ."36 fi37 38 ${cmd_iol} > inputs_list.txt39 ${cmd_iof} > /dev/null40 }41 42 25 diff_inputs() { 43 26 mesg='Same' … … 56 39 57 40 if [ $( find ${TEST_DIR} -name "*${last_time_step}_restart*.nc" -print -quit ) ]; then 58 base_name=$( find ${TEST_DIR} -name "*${last_time_step}_restart*.nc" -print -quit 59 | awk -F/ '{print $NF}' | sed "s/^\(.*\)$last_time_step \_.*/\1$last_time_step/")41 base_name=$( find ${TEST_DIR} -name "*${last_time_step}_restart*.nc" -print -quit \ 42 | awk -F/ '{print $NF}' | sed "s/^\(.*\)$last_time_step.*/\1$last_time_step/" ) 60 43 61 44 for comp in restart restart_ice restart_trc; do … … 68 51 69 52 # UNIX `cmp` not suitable (filename & timestamp in .nc file) 70 nc_diff=$( $CDO diffn ${TEST_DIR}/$file'.nc' ${REFE_DIR}/$file'.nc' 2> /dev/null | sed -n '$p')53 nc_diff=$( $CDO diffn ${TEST_DIR}/$file'.nc' ${REFE_DIR}/$file'.nc' 2> /dev/null | tail -1 ) 71 54 if [ ! -z "${nc_diff}" ]; then 72 55 export STATUS='FAILED' STEP='Restart files different' … … 86 69 } 87 70 71 get_cpu_time() { 72 real_cpu_time=$( eval ${JOB_TIME} ) 73 printf "Real CPU time\n${real_cpu_time}\n" | tee mesg_10_realcputime_${CFG_USER}_${CFG_ARCH}.txt 74 } 75 76 get_inputs() { 77 if [ ! -z "${FORC_TAR}" ]; then 78 cmd_iol="tar -tvf ${NEMO_FORC}/${FORC_TAR}"; cmd_iof="tar -vxf ${NEMO_FORC}/${FORC_TAR}" 79 else 80 cmd_iol="ls ${NEMO_FORC}/*" ; cmd_iof="\cp ${NEMO_FORC}/* ." 81 fi 82 83 ${cmd_iol} > inputs_list.txt 84 ${cmd_iof} > /dev/null 85 } 86 88 87 diff_textfiles() { 89 88 for file in ocean.output $( ls *.stat ); do … … 101 100 done 102 101 103 sed -n 4p model.log | sed 'i\ Compiler'> mesg_06_compiler_${CFG_USER}_${CFG_ARCH}.txt104 sed -n 5p model.log | sed 'i\MPI libs' > mesg_07_mpi_${CFG_USER}_${CFG_ARCH}.txt105 sed -n 6p model.log | sed 'i\NetCDF libs' > mesg_08_netcdf_${CFG_USER}_${CFG_ARCH}.txt102 sed -n 4p model.log | sed 'i\Fortran compiler' > mesg_06_compiler_${CFG_USER}_${CFG_ARCH}.txt 103 sed -n 5p model.log | sed 'i\MPI libs' > mesg_07_mpi_${CFG_USER}_${CFG_ARCH}.txt 104 sed -n 6p model.log | sed 'i\NetCDF libs' > mesg_08_netcdf_${CFG_USER}_${CFG_ARCH}.txt 106 105 } 107 106 … … 127 126 if [ "$dir" == "${DIR_XIOS}" ]; then 128 127 rev_loc=$( svn info $dir | awk '(NR == 5) {print $NF}' ) 129 echo 'XIOS '${rev_loc} >> model.log 130 printf "XIOS rev.\n${rev_loc}\n" > mesg_05_xios__${CFG_USER}_${CFG_ARCH}.txt 128 echo 'XIOS '${rev_loc} >> model.log 129 printf "XIOS rev.\n" > mesg_05_xios_${CFG_USER}_${CFG_ARCH}.txt 130 printf "<a href=\"https://forge.ipsl.jussieu.fr/ioserver/changeset/${rev_loc}\" target=\"_blank\">${rev_loc}</a>" \ 131 >> mesg_05_xios_${CFG_USER}_${CFG_ARCH}.txt 131 132 continue 132 133 fi … … 137 138 done 138 139 139 echo 'NEMOGCM '$rev 140 echo 'NEMOGCM '$rev >> model.log 140 141 # printf "NEMOGCM rev.\n$rev\n" > mesg_04_nemogcm_${CFG_USER}_${CFG_ARCH}.txt 141 printf "NEMOGCM rev.\n \142 143 >mesg_04_nemogcm_${CFG_USER}_${CFG_ARCH}.txt142 printf "NEMOGCM rev.\n" > mesg_04_nemogcm_${CFG_USER}_${CFG_ARCH}.txt 143 printf "<a href=\"https://forge.ipsl.jussieu.fr/nemo/changeset/$rev\" target=\"_blank\">$rev</a>" \ 144 >> mesg_04_nemogcm_${CFG_USER}_${CFG_ARCH}.txt 144 145 } 145 146 … … 153 154 if [ $PUBLISH -eq 1 ]; then 154 155 155 if [ -f ${REFE_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt ]; then cmd=' sed -n 2p'; else cmd='cat'; fi156 if [ -f ${REFE_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt ]; then cmd='tail -1'; else cmd='cat'; fi 156 157 157 158 $cmd trusting_${DATESTR}_${CFG_USER}_${CFG_ARCH}.txt >> ${REFE_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt … … 161 162 cat << END_MAIL > trusting.mail 162 163 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 164 163 165 Dear $USER, 164 166 165 The trusting sequence for ${ CONF_REF} has failed at step:166 `tail -n 1 ${TEST_DIR}/mesg_03_step_${CFG_USER}_${CFG_ARCH}.txt` 167 Directory : ${TEST_DIR} 167 The trusting sequence for ${REFE_CONF} has failed. 168 Directory: ${TEST_DIR} 169 Archive: ${REFE_DIR}/trusting_${DATESTR}_${CFG_USER}_${CFG_ARCH}.tar.gz 168 170 169 171 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 170 172 171 173 END_MAIL 174 #`tail -n 1 ${TEST_DIR}/mesg_03_step_${CFG_USER}_${CFG_ARCH}.txt` 172 175 if [ -e ${TEST_DIR}/trusting_${DATESTR}_${CFG_USER}_${CFG_ARCH}.txt ]; then 173 176 cat ${TEST_DIR}/trusting_${DATESTR}_${CFG_USER}_${CFG_ARCH}.txt >> trusting.mail 174 177 fi 175 mail -s "[trusting ${ CONF_REF}] $STATUS $STEP" $EMAIL < trusting.mail178 mail -s "[trusting ${REFE_CONF}] $STATUS $STEP" $EMAIL < trusting.mail 176 179 fi 177 180 … … 188 191 if [ "$STATUS" == 'FAILED' ]; then 189 192 cd ${TEST_DIR} 190 touch mesg_09_inputfiles_${CFG_USER}_${CFG_ARCH}.txt mesg_10_realcputime_${CFG_USER}_${CFG_ARCH}.txt \ 191 mesg_11_comments_${CFG_USER}_${CFG_ARCH}.txt 193 printf "Input files\n\n" > mesg_09_inputfiles_${CFG_USER}_${CFG_ARCH}.txt 194 printf "Real CPU time\n\n" > mesg_10_realcputime_${CFG_USER}_${CFG_ARCH}.txt 195 printf "Comments\n\n" > mesg_11_comments_${CFG_USER}_${CFG_ARCH}.txt 192 196 #tar -czf ${REFE_DIR}/trusting_${DATESTR}_${CFG_USER}_${CFG_ARCH}.tar.gz * 193 197 fi … … 207 211 while [[ $( ${JOB_LIST} | grep ${JOB_ID} ) && ${time_elapsed} -lt ${TIME_LIMI} ]]; do 208 212 printf "\n####################################################" >> computation.log 209 ${JOB_ VIEW} ${JOB_ID} >> computation.log213 ${JOB_INFO} ${JOB_ID} >> computation.log 210 214 sleep ${time_increment} 211 215 let time_elapsed+=${time_increment}
Note: See TracChangeset
for help on using the changeset viewer.