Changeset 1880
- Timestamp:
- 09/13/12 19:22:57 (12 years ago)
- Location:
- TOOLS/PACK_IPSL
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/PACK_IPSL/launch_and_measureTime.sh
r1869 r1880 189 189 } 190 190 191 function searchListsToDestroy 192 { 193 outputToSearchIn=$1 194 listToRmvFile=$2 195 cat ${outputToSearchIn} | grep -e '^#executed by' | awk '{ if ($9 == 0) {print $12} }' >> ${listToRmvFile} 196 } 197 function removeFilesInLists 198 { 199 setOfFileLstsToRmv=$1 200 rmvedFiles=$2 201 linksToEraseFile=$3 202 realDataToEraseFile=$4 203 204 old_IFS=$IFS # sauvegarde du séparateur de champ 205 IFS=$'\n' # nouveau séparateur de champ, le caractère fin de ligne 206 207 # Suppression des donnees autres que celles de type "debug" et "restart". 208 for lst in $( cat $setOfFileLstsToRmv | grep -v -E '(restart_tar|debug_tar)' ) 209 do 210 opt= 211 lstName=$( basename $lst ) 212 213 if [ "${lstName}" == "tar_full_simul.list" ] || [ "${lstName}" == "cp_files.list" ] 214 then 215 opt="r" 216 fi 217 218 for file in $( cat $lst ) 219 do 220 echo "rm -f${opt} $file" >> ${rmvedFiles} 221 # rm -f${opt} $file 222 done 223 done 224 225 # Pour les listes de type "debug" et "restart", les listes ne comportent 226 # que des liens : uniquement leur nom de base, pas leur path 227 # Il faut retrouver leur path, detruire le lien et le fichier qu'il pointe. 228 229 # Recherche de l'ensemble des fichiers a detruire : les liens + les donnees pointees par les liens 230 for lst in $( cat $setOfFileLstsToRmv | grep -E '(restart_tar|debug_tar)' ) 231 do 232 # Recuperation du repertoire contenant les fichiers de liens 233 dir_containing_links= 234 is_debug_tar_lst=`echo $lst | grep "debug_tar" | wc -l ` 235 if [ "x${is_debug_tar_lst}" != "x0" ] 236 then 237 dir_containing_links="DEBUG" 238 else 239 dir_containing_links="RESTART" 240 fi 241 242 tar_dir=$( dirname $lst ) 243 simu_dir=$( dirname $tar_dir ) 244 245 LINK_DIR="${simu_dir}/${dir_containing_links}" 246 if [ ! -d $LINK_DIR ] 247 then 248 echo "Suppression des donnees :" >> $badFailureFile 249 echo "Le repertoire sense contenir des liens symboliques :" >> $badFailureFile 250 echo "${LINK_DIR}" >> $badFailureFile 251 echo "n'existe pas." >> $badFailureFile 252 exit 1 253 fi 254 255 # 256 # ls sur le reperoire de lien et insertion du path absolu avant chaque lien. 257 ls -1 ${LINK_DIR} | sed "s;^;${LINK_DIR}/;" >> ${linksToEraseFile} 258 259 # Recuperation des donnees reelles pointees par les liens. 260 ls -1 -lrt ${LINK_DIR} | awk -F"->" '{print $2}' | sed 's;^ ;;' >> ${realDataToEraseFile} 261 done 262 263 # Destruction des liens et des donnees pointees par les liens pour les listes 264 # de type "debug" et "restart" 265 266 # Destroy links 267 for file in $( cat ${linksToEraseFile} ) 268 do 269 echo "rm -f $file" >> ${rmvedFiles} 270 # rm -f $file 271 done 272 273 # Destroy real datas 274 for file in $( cat ${realDataToEraseFile} ) 275 do 276 echo "rm -f $file" >> ${rmvedFiles} 277 # rm -f $file 278 done 279 280 IFS=$old_IFS # rétablissement du séparateur de champ par défaut 281 } 282 283 191 284 export RANDOM=$$ # random seed 192 285 function gives_random_number … … 202 295 #MSUB -r pack_ipsl # Nom du job 203 296 ### mutable directives ### 204 #MSUB -o /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT /detailed_pack_output/pack_ipsl_%I.o205 #MSUB -e /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT /detailed_pack_output/pack_ipsl_%I.e297 #MSUB -o /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT_only_2_simu/LMDZ4OR_v2/detailed_pack_output/pack_ipsl_%I.o 298 #MSUB -e /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT_only_2_simu/LMDZ4OR_v2/detailed_pack_output/pack_ipsl_%I.e 206 299 #MSUB -n 7 207 #MSUB -T 900300 #MSUB -T 1500 208 301 #MSUB -A tgcc0013 209 302 #MSUB -q standard … … 236 329 export checkFileTmp="checkTmp__try__${numCurrentTry}__instance__${numNewInstance}.txt" 237 330 331 export listsOfFilesToRemove="${progressDir}/listsToRmv__try__${numCurrentTry}__instance__${numNewInstance}.txt" 332 export removedFiles="${progressDir}/removedFiles__try__${numCurrentTry}__instance__${numNewInstance}.txt" 333 334 # Les 2 fichiers suivants sont crees pour la destruction des liens et des donnees pointes par ces liens 335 # dans le cas de listes de type "debug" ou "restart" 336 export linksToDestroyFile="${progressDir}/linksToDestroy__try__${numCurrentTry}__instance__${numNewInstance}.txt" 337 export realDataToDestroyFile="${progressDir}/realDataToDestroy__try__${numCurrentTry}__instance__${numNewInstance}.txt" 338 238 339 export noInterruptFile="${progressDir}/noInterrupt__try__${numCurrentTry}__instance__${numNewInstance}.txt" 239 340 240 241 # a virer242 #echo "inputCmd=$inputCmd" >> $badFailureFile243 #echo "nextInputCmd=$nextInputCmd" >> $badFailureFile244 #echo "output=$nextInputCmd" >> $badFailureFile245 #echo "reportFile=$nextInputCmd" >> $badFailureFile246 #echo "noInterruptFile=$noInterruptFile" >> $badFailureFile247 248 # exit 0 # a virer249 250 # a virer251 #if [ ${numNewInstance} -ge 4 ]252 #then253 # echo "inputCmd=$inputCmd" >> $badFailureFile254 # echo "nextInputCmd=$nextInputCmd" >> $badFailureFile255 # echo "output=$nextInputCmd" >> $badFailureFile256 # echo "reportFile=$nextInputCmd" >> $badFailureFile257 # echo "noInterruptFile=$noInterruptFile" >> $badFailureFile258 # echo >> $badFailureFile259 #fi260 341 261 342 if [ ${numCurrentTry} -le 1 ] && [ ${numNewInstance} -le 1 ] … … 295 376 else # numNewInstance == 1 296 377 numPrevTry=$(( $numCurrentTry - 1 )) 297 # echo "numCurrentTry=$numCurrentTry" >> $badFailureFile # a virer298 # echo "numPrevTry=$numPrevTry" >> $badFailureFile # a virer299 # exit 1 # a virer300 378 numLastInstInstanceInPrevTry=$( getNumeroOfLastInstance $numPrevTry ) 301 noInterruptFile ="${progressDir}/noInterrupt__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt"302 if [ ! -e $ noInterruptFile]379 noInterruptFile_prev_try="${progressDir}/noInterrupt__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 380 if [ ! -e ${noInterruptFile_prev_try} ] 303 381 then 304 382 # il y a eu interruption non prevue au dernier essai, il faut recomposer la liste des cmds avec les resultats … … 319 397 update_tasks_list ${nextInputCmd_of_LastInst} ${output_of_LastInst} ${inputCmd_of_LastInst} 320 398 cat $nextInputCmd_of_LastInst > ${inputCmd} 399 400 401 # Il faut aussi detruire les donnees correctement traitement a l'essai precedent, derniere instance. 402 listsOfFilesToRemoveFromPrevTry="${progressDir}/listsToRmvFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 403 removedFilesFromPrevTry="${progressDir}/removedFilesFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 404 linksToDestroyFileFromPrevTry="${progressDir}/linksToDestroyFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 405 realDataToDestroyFileFromPrevTry="${progressDir}/realDataToDestroyFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 406 407 searchListsToDestroy $output_of_LastInst $listsOfFilesToRemoveFromPrevTry 408 removeFilesInLists $listsOfFilesToRemoveFromPrevTry $removedFilesFromPrevTry $linksToDestroyFileFromPrevTry $realDataToDestroyFileFromPrevTry 409 321 410 else 322 411 nextInputCmd_of_LastInst="${progressDir}/nextInputCmd__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.list" … … 335 424 336 425 # Initialisation du rapport : par defaut, les calculs ont ete interrompus 337 echo "No report. Le computation must have interrupted." > $reportFile426 echo "No report. Le computation must have been interrupted." > $reportFile 338 427 339 428 # exit 0 # a virer 340 429 341 430 # a virer ######################################### 342 if [ ${numNewInstance} -ge 10 ]343 then344 echo >> $badFailureFile345 echo "10eme instance. STOP." >> $badFailureFile346 exit 1347 fi431 # if [ ${numNewInstance} -ge 10 ] 432 # then 433 # echo >> $badFailureFile 434 # echo "10eme instance. STOP." >> $badFailureFile 435 # exit 1 436 # fi 348 437 ################################################### 349 438 # startTime=$( getDateMilliSeconds ) # suppr … … 377 466 update_tasks_list $nextInputCmd $output $inputCmd 378 467 468 469 # Verifications sur qq listes (dont le traitement semble correct) : 470 # ---------------------------------------------------------------------------------------- 379 471 if [ "x${doYouWantCheck}" == "xyes" ] 380 472 then 381 # Verifications sur qq listes (dont le traitement semble correct) :382 # ----------------------------------------------------------------------------------------383 473 if [ "x${nbListsToCheck}" == "x" ] 384 474 then … … 417 507 echo "$checkCmd ==> not OK ==> stop everything." >> $checkFile 418 508 echo "$checkCmd ==> not OK ==> stop everything." >> $badFailureFile 419 #exit 1 # a retablir509 exit 1 # a retablir 420 510 else 421 511 echo "$checkCmd ==> OK" >> $checkFile … … 427 517 428 518 rm $checkFileTmp 429 # ----- Fin verif ------------------------------------------------------------------------430 519 fi 431 520 # ----- Fin verif ------------------------------------------------------------------------ 521 522 523 # Suppression des données des fichiers de listes correctement traitees ------------------- 524 # Recherche des listes de fichiers de donnees a detruire : 525 # Parmi celles traitees, celles qui ont ete traitees correctement 526 > $listsOfFilesToRemove 527 > $removedFiles 528 > $linksToDestroyFile 529 > $realDataToDestroyFile 530 531 searchListsToDestroy $output $listsOfFilesToRemove 532 533 removeFilesInLists $listsOfFilesToRemove $removedFiles $linksToDestroyFile $realDataToDestroyFile 534 535 536 537 538 539 540 # ----- Fin suppression de donnees ------------------------------------------------------- 541 542 # Si le fichier dans variable "noInterruptFile" inexistant, une interruption non prevue a eu lieu 432 543 echo "no interruption has occured" > ${noInterruptFile} 433 544 434 # 545 # exit 0 # a virer 435 546 436 547 # Tout s'est bien passe … … 443 554 fi 444 555 445 # y a t il progressionavant traitements et apres ?446 # ------------------------------------------------- 556 # Y a t il progression entre avant traitements et apres ? 557 # ------------------------------------------------------ 447 558 # Dans la fonction 'check_progress', on a besoin de verifier le code 448 559 # de retour du traitement des listes : en effet, si les 2 fichiers a comparer -
TOOLS/PACK_IPSL/parallelPack.sh
r1873 r1880 275 275 ccc_msub launch_and_measureTime.sh 276 276 277 DEM_log -0 "Fin de ${SCRIPT_NAME}" 278 277 tpsAvantRendreLaMain=15 279 278 280 279 elapsedTime=0 281 while [ $elapsedTime -lt 500]280 while [ $elapsedTime -lt $tpsAvantRendreLaMain ] 282 281 do 283 282 sleep 5 … … 292 291 done 293 292 294 if [ ${elapsedTime} -ge 500]295 then 296 echo "Les 500sec sont ecoulees, les traitements continuent..."297 fi 298 299 300 301 293 if [ ${elapsedTime} -ge $tpsAvantRendreLaMain ] 294 then 295 echo "Les $tpsAvantRendreLaMain sec sont ecoulees, les traitements continuent..." 296 fi 297 298 299 DEM_log -0 "Fin de ${SCRIPT_NAME}" 300
Note: See TracChangeset
for help on using the changeset viewer.