Changeset 5681 for branches/2015
- Timestamp:
- 2015-08-11T19:52:33+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/romr005.cfg
r5664 r5681 1 1 # User configuration 2 2 3 3 4 # Global Directories: … … 6 7 DIR_STOR=$WORKDIR/NEMO/trusting_sav 7 8 9 8 10 # NEMO overall configuration: 9 11 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN='trunk' 12 NEMO_HOME=${DIR_WORK}/NEMO/${NEMO_BRAN}/NEMOGCM 13 10 14 [ -z "${REFE_CONF}" ] && REFE_CONF='ORCA2_LIM_PISCES' 11 15 [ -z "${TEST_CONF}" ] && TEST_CONF='O2LP_trust' 16 KEYS_ADD=''; KEYS_DEL='' 17 18 NEMO_FORC=${DIR_WORK}/NEMO/FORC 12 19 [ -z "${NEMO_TARF}" ] && NEMO_TARF='ORCA2_LIM_nemo_v3.6.tar' 13 NEMO_HOME=${DIR_WORK}/NEMO/${NEMO_BRAN}/NEMOGCM 14 NEMO_FORC=${DIR_WORK}/NEMO/FORC 20 15 21 16 22 # Comparatives directories localization: … … 18 24 TEST_DIR=${DIR_SCRA}/${REFE_CONF}/${NEMO_BRAN}/trusting_${DATE} 19 25 26 20 27 # External softs directories: 21 28 DIR_XIOS=${DIR_WORK}/XIOS/xios-1.0 22 29 #DIR_OASI=${DIR_WORK}/OASIS 23 30 31 24 32 # Mailing list to inform of a failure, -p|--publish option required 25 33 [ -z "$EMAIL"] && EMAIL=ntmlod@locean-ipsl.upmc.fr -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/user_template.cfg
r5644 r5681 1 # Copy to ./${CFG_USER}.cfg, fill in according to your installation1 ## Copy to ./${CFG_USER}.cfg, fill in according to your installation 2 2 3 # User configuration 3 ## User configuration 4 ##------------------- 4 5 5 # NEMO overall configuration:6 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN='' # ex: 'trunk', 'nemo_v3_6_STABLE', ...7 [ -z "${CONF_REFE}" ] && REFE_CONF='' # ex: 'ORCA2_LIM_PISCES', 'GYRE', ...8 [ -z "${CONF_TEST}" ] && TEST_CONF='' # ex: "${CONF_REFE}_trust", ...9 [ -z "${NEMO_TARF}" ] && NEMO_TARF='' # Archive name (ex: 'ORCA2_LIM_nemo_v3.6.tar', ...), let blank if not requested10 NEMO_HOME='' # NEMOGCM directory for computation (./ARCH, ./CONFIG, ...)11 # ex: ".../NEMO/${NEMO_BRAN}/NEMOGCM", ...12 NEMO_FORC='' # Directory with forcing archive from DODS/ESGF server to extract13 # or " " "" all inputs files to copy into ${TEST_DIR}14 6 15 # Comparatives directories localization: 16 REFE_DIR='' # "Standard" folder where previous result files have been stored for comparison 17 # ex: ".../${CONF_REFE}/${NEMO_BRAN}" 18 TEST_DIR='' # Test folder for computation 19 # ex: ".../${CONF_REFE}/${NEMO_BRAN}/trusting_${DATE}" 7 ## NEMO overall installation: 8 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN='' ## NEMO SVN branch to test 9 ## ex: 'trunk', 'nemo_v3_6_STABLE', ... 10 NEMO_HOME='' ## NEMOGCM directory (includes ./ARCH, ./CONFIG, ...) 11 ## ex: ".../NEMO/${NEMO_BRAN}/NEMOGCM", ... 12 ## ${NEMO_BRAN} must be consistent with URL branch that have been checkout by SVN to build ${NEMO_HOME} 20 13 21 # External softs directories: 22 DIR_XIOS='' # ex: '.../XIOS/xios-1.0' 23 #DIR_OASI='' # ex: '.../OASIS' 14 ### Reference/'Trusting' configuration 15 [ -z "${REFE_CONF}" ] && REFE_CONF='' ## Reference configuration to test 16 ## ex: 'ORCA2_LIM_PISCES', 'GYRE', ... 17 [ -z "${TEST_CONF}" ] && TEST_CONF='' ## Testing configuration name 18 ## ex: "${REFE_CONF}_trust", ... 19 KEYS_ADD=''; KEYS_DEL='' ## CPP keys to add or remove from reference configuration 20 ## ex: "key_mpp_rep key_tide", ... 21 [ "" == '' ] && KEYS_ADD='' && KEYS_DEL='' 24 22 25 # Mailing list to inform of a failure (-p|--publish option required) 23 ### Inputs 24 NEMO_FORC='' ## Directory with forcing archive from DODS/ESGF server to extract or 25 ## " " "" all inputs files to copy into ${TEST_DIR} 26 [ -z "${NEMO_TARF}" ] && NEMO_TARF='' ## Archive inputs name, let blank if not requested 27 ## ex: 'ORCA2_LIM_nemo_v3.6.tar', 'AMM12_v3.6.tar', ... 28 29 30 ## Comparative directories path: 31 REFE_DIR='' ## "Standard" folder where benchmark result files have been stored for comparison 32 ## ex: ".../${REFE_CONF}/${NEMO_BRAN}" 33 TEST_DIR='' ## Test folder for computation 34 ## ex: ".../${REFE_CONF}/${NEMO_BRAN}/trusting_${DATE}" 35 36 37 ## External softs directories: 38 DIR_XIOS='' ## ex: '.../XIOS/xios-1.0' 39 #DIR_OASI='' ## ex: '.../OASIS' 40 41 42 ## Mailing list to inform of a failure (-p|--publish option required) 26 43 [ -z "$EMAIL"] && EMAIL='' -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.env
r5644 r5681 11 11 . ${NEMO_TRUS}/config/${NEMO_USER}.cfg 12 12 export NEMO_HOME NEMO_BRAN 13 export REFE_CONF TEST_CONF REFE_DIR TEST_DIR 13 export REFE_CONF TEST_CONF KEYS_ADD KEYS_DEL 14 export NEMO_FORC NEMO_TARF 15 export REFE_DIR TEST_DIR 14 16 export DIR_XIOS #DIR_OASI 15 export NEMO_FORC NEMO_TARF16 17 export EMAIL 17 18 -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.sh
r5671 r5681 11 11 xios_full='--full'; stderr_redir='>&' ## DEBUG options 12 12 13 13 14 ## Get options for replacing some initials settings 14 15 ##--------------------------------------------------- 15 16 while [ $# -ne 0 ]; do 17 16 18 case $1 in 17 -a|--archive) NEMO_TARF=$2 ; shift 2;; -b|--branch) NEMO_BRAN=$2 ; shift 2;;18 -d|--debug ) set -vx; DEBUG=1 ; shift ;; -e|--email) EMAIL=$2 ; shift 2;;19 -j|--job ) NPROC=$2 ; shift 2;; -h|--help) cat trusting_help.txt; exit 1;;20 -m|--machine) NEMO_HPCC=$2 ; shift 2;; -n|--newconf) TEST_CONF=$2 ; shift 2;;21 -r|--refconf) REFE_CONF=$2 ; shift 2;; -t|--time) TIME_LIMI=$2 ; shift 2;;22 -p|--publish) PUBLISH=1 ; shift ;; -u|--user) NEMO_USER=$2 ; shift 2;;23 -v|--version) NEMO_VERS=$2 ; shift 2;; *) cat trusting_help.txt; exit 1;;19 '-a'|'--archive') NEMO_TARF=$2 ; shift 2;; '-b'|'--branch ') NEMO_BRAN=$2 ; shift 2;; 20 '-d'|'--debug ') set -vx; DEBUG=1; shift ;; '-e'|'--email ') EMAIL=$2 ; shift 2;; 21 '-j'|'--job ') NPROC=$2 ; shift 2;; '-h'|'--help ') cat trusting_help.txt; exit 1;; 22 '-m'|'--machine') NEMO_HPCC=$2 ; shift 2;; '-n'|'--newconf') TEST_CONF=$2 ; shift 2;; 23 '-r'|'--refconf') REFE_CONF=$2 ; shift 2;; '-t'|'--time ') TIME_LIMI=$2 ; shift 2;; 24 '-p'|'--publish') PUBLISH=1 ; shift ;; '-u'|'--user ') NEMO_USER=$2 ; shift 2;; 25 '-v'|'--version') NEMO_VERS=$2 ; shift 2;; "*" ) cat trusting_help.txt; exit 1;; 24 26 esac 27 25 28 done 29 26 30 27 31 ## Initialization (super-computer & user environment) … … 43 47 . ./trusting_func.sh 44 48 49 45 50 ## Summary of trusting test context 46 51 ##--------------------------------------------------- … … 53 58 Trusting SVN version: $( svn info | awk '(NR == 9) {print $NF}' )\n" 54 59 60 55 61 ## Making timestamped directory with messenger files 56 62 ##--------------------------------------------------- … … 60 66 init_files && get_date 61 67 68 62 69 ## SVN action on XIOS & NEMO essentials directories 63 70 ##--------------------------------------------------- 64 71 print_step 'SVN command on NEMO directories:' 65 72 get_nemo_rev 73 66 74 67 75 ## Check softwares versions (source arch environment) … … 73 81 cat model.log 74 82 83 75 84 ## XIOS compiling 76 85 ##--------------------------------------------------- … … 78 87 cd ${DIR_XIOS} 79 88 [ $DEBUG -eq 1 ] && xios_full='' && stderr_redir='>' 80 eval ./make_xios ${xios_full} --arch ${NEMO_HPCC} --job $NPROC ${stderr_redir} /dev/null 89 eval ./make_xios ${xios_full} --arch ${NEMO_HPCC} --job $NPROC \ 90 ${stderr_redir} /dev/null 81 91 [ ! -e ${DIR_XIOS}/lib/libxios.a ] && get_out 1 82 92 … … 85 95 print_step "Compile ${REFE_CONF} configuration" 86 96 cd ${NEMO_CONF} 87 [[ -d ${TEST_CONF} && $DEBUG -eq 0 ]] && eval ./makenemo -n ${TEST_CONF} clean_config > /dev/null <<EOF 97 98 if [[ -d ${TEST_CONF} && $DEBUG -eq 0 ]]; then 99 eval ./makenemo -n ${TEST_CONF} clean_config > /dev/null <<EOF 88 100 y 89 101 EOF 90 eval ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m ${NEMO_HPCC} -j $NPROC ${stderr_redir} /dev/null 102 fi 103 104 eval ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m ${NEMO_HPCC} -j $NPROC \ 105 add_key ${KEYS_ADD} del_key ${KEYS_DEL} \ 106 ${stderr_redir} /dev/null 91 107 [ ! -e ${TEST_CONF}/BLD/bin/nemo.exe ] && get_out 2 108 92 109 93 110 ## Get namelists, xml & forcing files for running … … 100 117 [ $( find . -name '*.gz' -print -quit ) ] && find . -name '*.gz' -exec gunzip {} \; 101 118 119 102 120 ## Check input files in all cases 103 121 ##--------------------------------------------------- 104 122 print_step 'Compare with standard input files list' 105 123 diff_inputs 124 106 125 107 126 ## Job submission & computing … … 114 133 print_step 'Job finished' 115 134 135 116 136 ## Job state 117 137 ##--------------------------------------------------- 118 138 print_step 'Test job state' 139 119 140 if [[ ! -e time.step || $( grep -q 'E R R O R' ocean.output ) ]]; then 120 141 echo 'Error' … … 131 152 ST='OK' ## 'OK' by default 132 153 154 133 155 ## Inspect output text files 134 156 ##--------------------------------------------------- … … 136 158 diff_results 137 159 160 138 161 ## Inspect output NetCDF files 139 162 ##--------------------------------------------------- 140 163 print_step 'Test last restart files diff' 141 164 diff_restart 142 [ "$ST" == 'FAILED' ] && get_out 8 165 [ $ST == 'FAILED' ] && get_out 8 166 143 167 144 168 ## Get comments (ocean.output & diff model.log) … … 146 170 comments 'W A R N I N G' 147 171 172 148 173 ## End 149 174 ##--------------------------------------------------- -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh
r5672 r5681 13 13 FILE_TRUS=trusting_${DATE}_$PATTERNAME.txt; FILE_ARCH=trusting_${DATE}_$PATTERNAME.tar.gz 14 14 15 15 16 print_step() { printf "\nStep.....\n$1\n"; } 17 16 18 17 19 init_files() { … … 27 29 } 28 30 31 29 32 get_date() { 30 33 local dat=$( date -ud ${DATE} +"%F %R %Z" ) … … 32 35 echo $dat >> ${FILE_DATE} 33 36 } 37 34 38 35 39 get_nemo_rev() { … … 54 58 55 59 ## For time being, just get revision number from XIOS 56 if [ "$dir" == "${DIR_XIOS}"]; then60 if [ $dir == ${DIR_XIOS} ]; then 57 61 rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) 58 62 echo 'XIOS '${rev_loc} >> model.log … … 73 77 } 74 78 79 75 80 get_soft_rel() { 76 81 local soft_rel … … 85 90 fi 86 91 87 [ "$soft" == "$COMPILER"] && soft_rel=$( $soft --version | grep -m1 -oe '\<[0-9. ]*\>' )92 [ $soft == $COMPILER ] && soft_rel=$( $soft --version | grep -m1 -oe '\<[0-9. ]*\>' ) 88 93 ## Cleaning characters string to display proper soft name 89 94 soft=$( echo $soft | sed 's#\\##g; s#[/-]$##' ) … … 95 100 } 96 101 102 97 103 get_inputs() { 98 104 local cmd_iol="tar -tvf ${NEMO_FORC}/${NEMO_TARF}" cmd_iof="tar -vxf ${NEMO_FORC}/${NEMO_TARF}" … … 101 107 ${cmd_iol} > inputs_list.txt && ${cmd_iof} > /dev/null 102 108 } 109 103 110 104 111 diff_inputs() { … … 106 113 local files_list='' mesg='Same' 107 114 108 for file in inputs_list.txt namelist_* *.xml ; do115 for file in inputs_list.txt namelist_* *.xml cpp_*; do 109 116 dif='' 110 if [ -e ${REFE_DIR}/$file ]; then dif=$( diff -q $file ${REFE_DIR}/$file ); else dif=0; fi 117 118 if [ -e ${REFE_DIR}/$file ]; then 119 dif=$( diff -q $file ${REFE_DIR}/$file ) 120 else dif=0; fi 111 121 112 122 if [ -n "$dif" ]; then 113 123 mesg='Different' 114 (( "$dif" != '0' ))&& echo $dif && files_list+=$file' '124 [ $dif != '0' ] && echo $dif && files_list+=$file' ' 115 125 fi 116 126 117 127 done 118 128 119 [ "$mesg" == 'Same' ] && echo $mesg 120 echo $mesg >> ${FILE_INPT} 121 129 [ $mesg == 'Same' ] && echo $mesg | tee -a ${FILE_INPT} 122 130 [ -n "${files_list}" ] && echo 'Inputs : '${files_list}'differ<br>' \ 123 131 >> temp_${FILE_COMM} 124 132 } 133 125 134 126 135 job_pending() { … … 146 155 } 147 156 157 148 158 diff_results() { 149 159 local files_list='' … … 159 169 } 160 170 171 161 172 diff_restart() { 162 local base_name dif diftfile list_comp list_tmsp nb_dom163 local files_list='' 164 165 [ ! -e 173 local base_name dif file list_comp list_tmsp nb_dom 174 local files_list='' dift=0 175 176 [ ! -e ${REFE_DIR}/time.step ] && export ST='FAILED' && get_out 7 166 177 export TIME_STEP=$( cat ${REFE_DIR}/time.step | tr -d [:space:] ) 167 178 echo 'Last time step of benchmark run: '${TIME_STEP} … … 195 206 | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n' ) 196 207 197 if [[ -n "$ {dif}" && $( echo $dif | awk '{ print $1 }') -ne 0]]; then208 if [[ -n "$dif" && (( $( echo $dif | awk '{print $1}' ) -ne 0 )) ]]; then 198 209 export ST='FAILED' && files_list+=$file' ' 199 210 let dift+=$( echo $dif | awk '{print $1}' ) 200 echo $file'.nc: '$dif 201 else 202 echo 'identical' 211 echo $file.nc': '$dif 203 212 fi 204 213 205 else 206 export ST='FAILED' && get_out 7 207 fi 208 209 else 210 continue 211 fi 214 else export ST='FAILED' && get_out 7; fi 215 216 else continue; fi 212 217 213 218 done 214 219 done 215 220 216 [ -n "${files_list}" ] && echo 'Restarts: '${files_list}$dift' record(s) differ<br>' \ 217 >> temp_${FILE_COMM} 218 else 219 export ST='FAILED' 220 fi 221 222 } 221 if (( $dift != 0 )); then 222 echo 'Restarts: '${files_list}$dift' record(s) differ<br>' \ 223 >> temp_${FILE_COMM} 224 else echo 'No restart differ'; fi 225 226 else export ST='FAILED'; fi 227 228 } 229 223 230 224 231 get_cpu_time() { … … 227 234 echo ${real_cpu_time} | tee -a ${FILE_CPUT} 228 235 } 236 229 237 230 238 comments() { … … 242 250 } 243 251 252 244 253 mesg_make() { 245 254 ## Format comments for web … … 250 259 } 251 260 261 252 262 mesg_publish() { 253 263 local cmd … … 259 269 $cmd ${FILE_TRUS} >> ${REFE_DIR}/trusting_$PATTERNAME.txt 260 270 261 ## Send mail only when FAILED 262 if [[ ! -z "$EMAIL" && "$ST" == 'FAILED' ]]; then 263 cat << END_MAIL > trusting.mail 264 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 271 ## Send mail only when FAILED 272 if [[ ! -z "$EMAIL" && $ST == 'FAILED' ]]; then 273 cat <<END_MAIL \ 274 > trusting.mail 275 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 265 276 266 277 Dear $USER, … … 270 281 Archive created: ${FILE_ARCH} in ${REFE_DIR} 271 282 272 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 283 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 273 284 274 285 END_MAIL … … 282 293 } 283 294 295 284 296 get_out() { 285 297 ERR=$1 … … 287 299 cd ${TEST_DIR} 288 300 289 if [ "$ST"== 'FAILED' ]; then301 if [ $ST == 'FAILED' ]; then 290 302 291 303 ## Error identification … … 309 321 310 322 ## Save tested configuration if trusting failed 311 if [[ "$ST"== 'FAILED' && $PUBLISH -eq 1 && $DEBUG -eq 0 ]]; then323 if [[ $ST == 'FAILED' && $PUBLISH -eq 1 && $DEBUG -eq 0 ]]; then 312 324 echo 'Creating archive '${FILE_ARCH}' under '${REFE_DIR} 313 tar -czf ${REFE_DIR}/${FILE_ARCH} * ${ TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/cpp_* \314 ${ TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/MY_SRC \315 ${ TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/WORK325 tar -czf ${REFE_DIR}/${FILE_ARCH} * ${NEMO_HOME}/CONFIG/${TEST_CONF}/cpp_* \ 326 ${NEMO_HOME}/CONFIG/${TEST_CONF}/MY_SRC \ 327 ${NEMO_HOME}/CONFIG/${TEST_CONF}/WORK 316 328 fi 317 329
Note: See TracChangeset
for help on using the changeset viewer.