Changeset 1853 for TOOLS/PACK_IPSL/parallelPack.sh
- Timestamp:
- 09/03/12 11:29:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/PACK_IPSL/parallelPack.sh
r1849 r1853 1 1 #!/bin/bash 2 3 function insertDirectives 4 { 5 6 local batchFile="launch_and_measureTime.sh" 7 local lineBeginMutableDrves=`grep -n "batch directives : begin" $batchFile | awk -F":" '{print $1}' ` 8 local lineHeaderMutableDrves=`grep -n "mutable directives" $batchFile | awk -F":" '{print $1}' ` 9 local lineEndMutableDrves=`grep -n "batch directives : end" $batchFile | awk -F":" '{print $1}' ` 10 if [ "x${lineBeginMutableDrves}" == "x" ] || [ "x${lineHeaderMutableDrves}" == "x" ] || [ "x${lineEndMutableDrves}" == "x" ] 11 then 12 echo "Examen du fichier $batchFile :" 13 echo "Il manque les balises commentees 'mutable directives' et 'batch directives : end' " 14 exit 1 15 fi 16 17 # echo "lineHeaderMutableDrves=$lineHeaderMutableDrves" 18 # echo "lineEndMutableDrves=$lineEndMutableDrves" 19 20 if [ $lineHeaderMutableDrves -ge $lineEndMutableDrves ] 21 then 22 echo "Examen du fichier $batchFile :" 23 echo "les lignes 'mutable directives' et 'batch directives : end' n'existent pas ou ne sont" 24 echo "pas bien placees l'une par rapport a l'autre ==> STOP." 25 exit 1 26 fi 27 28 # Suppression des anciennes directives 29 local firstLineToMove=$(( $lineHeaderMutableDrves + 1 )) 30 local lastLineToMove=$(( $lineEndMutableDrves - 1 )) 31 if [ $firstLineToMove -lt $lineEndMutableDrves ] 32 then 33 sed -i "${firstLineToMove},${lastLineToMove}d" $batchFile 34 fi 35 36 # insertion des directives chargees a partir de "load_batch_directives.sh" 37 local lineEndMutableDrves=`grep -n "batch directives : end" $batchFile | awk -F":" '{print $1}' ` 38 sed -i "${lineEndMutableDrves}i\#MSUB -Qos $QosType" $batchFile 39 sed -i "${lineEndMutableDrves}i\#MSUB -q $queueType" $batchFile 40 sed -i "${lineEndMutableDrves}i\#MSUB -A $projectName" $batchFile 41 sed -i "${lineEndMutableDrves}i\#MSUB -T $computationTime" $batchFile 42 sed -i "${lineEndMutableDrves}i\#MSUB -n $nbProcs" $batchFile 43 44 # insertion des directives specifiant les sorties des operations de pack 45 sed -i "${lineEndMutableDrves}i\#MSUB -e ${DETAILLED_OUTPUT}/pack_ipsl_%I.e" $batchFile 46 sed -i "${lineEndMutableDrves}i\#MSUB -o ${DETAILLED_OUTPUT}/pack_ipsl_%I.o" $batchFile 47 48 } 49 50 function check_machine 51 { 52 local host_name=`hostname ` 53 local isMachineTitane=`echo $host_name | grep "titane" | wc -l ` 54 local isMachineCurie=`echo $host_name | grep "curie" | wc -l ` 55 56 if [ "x${isMachineTitane}" == "x0" ] && [ "x${isMachineCurie}" == "x0" ] 57 then 58 echo "Ce programme doit etre lance a partir 'curie' ou 'titane'. STOP." 59 exit 1 60 fi 61 62 } 63 64 function getNumeroOfPreviousTry 65 { 66 local num_try="0" 67 ici=$PWD 68 cd $USER_OUTPUT_PROGRESS 69 70 tryDirs=`ls | grep -e 'TRY__[[:digit:]]\{1,2\}$' ` 71 for dir in $tryDirs 72 do 73 num=`echo $dir | awk -F"__" '{print $NF}' ` 74 if [ $num -gt $num_try ] 75 then 76 num_try=$num 77 fi 78 done 79 cd $ici 80 echo $num_try 81 82 } 2 83 3 84 ######## pour option -f ############# … … 17 98 ###################################### 18 99 19 export IGCM_DEM=${SCRATCHDIR}/IGCM_DEM 20 21 ######### Si l'option -f est activee, on detruit tous les fichiers status ########## 100 # On charge les variables d'environnement 101 . load_ipslPack_env.sh 102 103 # On charge les directives batch 104 . load_batch_directives.sh 105 106 # on verifie que la machine est 'curie' ou 'titane' 107 check_machine 108 109 ######### On insert les directives batch en en-tete du script "launch_and_measureTime.sh" ########## 110 ######### lance plus loin. Seules les directives de nom du job et de sorties restent inchangees ########## 111 112 insertDirectives 113 114 # exit 0 # gpdebug : a virer 115 116 # export inputCmd="${USER_OUTPUT_PROGRESS}/inputCmd.list" 117 # export nextInputCmd="${USER_OUTPUT_PROGRESS}/nextInputCmd.list" 118 # export output="${USER_OUTPUT_PROGRESS}/packOutput.log" 119 # export reportFile="${USER_OUTPUT_PROGRESS}/report.log" 120 121 ########## Si l'option -f est activee, on detruit tous les fichiers status ########## 22 122 if [ "x$restartExecFromZero" == "x1" ] 23 123 then … … 41 141 echo "Deletion done." 42 142 fi 143 144 145 # Par ailleurs, on vide les fichiers de cmds, d'output et de rapport si option -f activee 146 if [ "x${restartExecFromZero}" == "x1" ] 147 then 148 rm -rf ${USER_OUTPUT_PROGRESS}/TRY__* 149 fi 150 151 # exit 0 # a virer 152 43 153 ##################################################################################### 44 154 … … 54 164 # fichier pour la transmission des messages d'erreur d'un fils au prog principal 55 165 export errorMsgFile="${PWD}/errorMsg.txt" 56 ############## gpdebug : fin ############################################################## 57 58 export timeHandlingFile="timeHandlingFile.txt" 166 ############## gpdebug : fin ############################################################## 167 168 check_nco_version # verification de la version de nco ####################### 169 170 # penser a arreter le present script si le module "libccc_user" n'a pas ete charge 171 172 export badFailureFile=${USER_OUTPUT_PROGRESS}/badFailure.txt 173 > $badFailureFile # nouvel essai, on vide le fichier d'erreur 174 tryNumFile=${USER_OUTPUT_PROGRESS}/numero_current_try.txt 175 numPreviousTry=$( getNumeroOfPreviousTry ) 176 # echo "numPreviousTry=$numPreviousTry" 177 numNewTry=$(( $numPreviousTry + 1 )) 178 179 # Pas de 4eme essai permis 180 # ---------------------------- 181 if [ $numNewTry -ge 3 ] 182 then 183 echo "Pas de 4eme essai permis" 184 exit 1 185 fi 186 187 # echo "numNewTry=$numNewTry" 188 mkdir -p ${USER_OUTPUT_PROGRESS}/TRY__${numNewTry} 189 echo $numNewTry > $tryNumFile 190 191 # exit 0 # a virer 192 193 194 195 export timeHandlingFile="${USER_OUTPUT_PROGRESS}/timeHandlingFile.txt" 59 196 > $timeHandlingFile 60 197 startTime=$( getDateMilliSeconds ) … … 65 202 DEM_log -0 "Demarrage de ${SCRIPT_NAME}" 66 203 67 check_nco_version # gpdebug : verification de la version de nco ####################### 68 69 ccc_msub -A tgcc0013 launch_and_measureTime.sh 70 71 204 # ccc_msub -A tgcc0013 launch_and_measureTime.sh 205 ccc_msub launch_and_measureTime.sh 72 206 73 207 DEM_log -0 "Fin de ${SCRIPT_NAME}" 208 209 210 elapsedTime=0 211 while [ $elapsedTime -lt 500 ] 212 do 213 sleep 5 214 elapsedTime=$(( $elapsedTime + 5 )) 215 isFailureFileEmpty=`cat $badFailureFile | wc -l ` 216 if [ "x${isFailureFileEmpty}" != "x0" ] 217 then 218 sleep 2 # on attend que le fichier soit correctement rempli 219 cat $badFailureFile 220 exit 0 221 fi 222 done 223 224 225 226
Note: See TracChangeset
for help on using the changeset viewer.