source: TOOLS/SURPACK_IPSL/launch_ipsl_pack.sh @ 3624

Last change on this file since 3624 was 2160, checked in by acosce, 11 years ago

Some update on surpack tools

1) add a script to move new pack on store and remove old simulation after checking results
2) make some improvement on launch_ipsl_pack.sh and other scripts

File size: 6.5 KB
Line 
1#!/bin/bash
2######################
3## TITANE   CEA ##
4######################
5#MSUB -r ipsl_pack      # Nom du job               
6#MSUB -eo
7#MSUB -n 1              # Reservation du processus
8#MSUB -T 86400          # Limite de temps elapsed du job
9#MSUB -p gen2211
10#MSUB -q mono
11
12# ex : ./launch_ipsl_pack.sh fichier_param_test1.txt
13# ex : ./launch_ipsl_pack.sh param_SL.txt
14# ex : ./launch_ipsl_pack.sh param_OM.txt
15
16# Est-on sur ulam (machine de l'IDRIS) ?
17is_idris_machine=`hostname | grep "ulam" | wc -l `
18ON_IDRIS="no"
19if [ "x${is_idris_machine}" != "x0" ]
20then
21    ON_IDRIS="yes"
22fi
23export ON_IDRIS=${ON_IDRIS}
24
25##### gpdebug : addition ##################################
26# Boucle qui gere les parametres du script (permet l'introduction d'une option -f
27# qui force l'execution de toute les etapes du script de listes)
28execEveryStep=0
29LISTE_SIMUL_ARG=
30Question=n
31continuePack=y
32while [ $# -gt 0 ]
33do
34    echo "boucle sur les arguments du script ..."
35    echo "@=$@"
36    case $1 in
37        -h)  cat <<fin
38ce script permet de trouver une frequence de pack plus longue pour une simulation donnee
39IMPORTANT : avant de lancer ce script vous devez configurer le fichier load_ipslPack_env.sh
40
41Usage : ./launch_ipsl_pack.sh param.txt
42avec param.txt contenant le path de la simulation. Ex :
43vi param.txt ; /ccc/store/cont003/dsm/p86cozic/IGCM_OUT/IPSLCM5A/PROD/historical/CM51989.2
44ATTENTION : il ne faut pas de "/" en fin du path
45
46options de lancement :
47-h : manuel d'utilisation
48-f : possibilite de forcer le redemarrage du script au debut   
49-v : mode dans lequel apres le calcul de la nouvelle frequence, le script propose a l'utilisateur
50    de continuer ou non (donc de creer les nouvelles listes de fichiers à packer ou non) 
51
52fin
53            exit;;
54        -f)  execEveryStep=1
55            echo "force..."
56            ;;
57        -v)  Question=y
58            echo "nous nous arreterons apres le calcul de la frequence pour vous laisser le choix de continuer ou non"
59            ;;
60        *)  LISTE_SIMUL_ARG=${1} 
61            echo "autres..."
62            ;;
63    esac
64    shift
65done
66export execEveryStep=${execEveryStep}
67
68SCRIPT_NAME=$(basename ${0} )
69
70# On renseigne les variables d'environnement
71export scriptCallingLoad=$SCRIPT_NAME # sert a renseigner "load_ipslPack_env.sh" sur le script l'appelant
72. load_ipslPack_env.sh
73
74if [ "x${LISTE_SIMUL_ARG}" == "x" ]
75then
76    echo "Vous devez passer un fichier en parametre"
77    exit 1
78else
79    LISTE_SIMUL=${LISTE_SIMUL_ARG}
80fi
81
82LISTE_SIMUL_NAME=$(basename ${LISTE_SIMUL} )
83# fichier de progression d'execution
84ficParam=$( basename ${LISTE_SIMUL} ) 
85extSuiviListes=`echo ${ficParam} | sed 's;\.[[:alnum:]]*$;;' `
86
87
88export JOB_DIR=${TMP_MIGR_DATA}
89export EXE_DIR=${LS_SUBCWD:-${PWD}}
90
91export MonitoringDir="${TMP_MIGR_DATA}/SuiviListes_${extSuiviListes}"
92
93export generalMonitorFile=${MonitoringDir}/general.txt
94export nbSimuFile=${MonitoringDir}/nbSimu.txt
95
96
97if [ "x${IGCM_DEM}" == "x" ]
98then
99    echo "variable IGCM_DEM non renseignee. STOP."
100    exit 1
101fi
102if [ "x${execEveryStep}" == "x1" ]
103then
104    echo "Destruction du repertoire :"
105    echo "${IGCM_DEM}"
106    rm -rf ${IGCM_DEM}
107fi
108
109export IGCM_TMP="${IGCM_DEM}/tmp" 
110# INPUT_DMF_DATA, positionnee par le load_ipslPack_env.sh, sert pour pour PATH_SIMUL_SHORT dans create_config_card.sh
111
112export clean_tmp=${clean_tmp:-yes}
113export DEM_LOG=${JOB_DIR}/dem_${LSB_JOBID:-${$}}.log
114export LOG_LEV=0
115export FileParam=${LISTE_SIMUL} # gpdebug : pour appel (dans DEM_utilities.sh) a showListsProgress.sh
116export FatherPID=$$ # gpdebug : pour appel (dans DEM_utilities.sh) a showListsProgress.sh
117
118source ${EXE_DIR}/DEM_utilities.sh
119
120# gpdebug : prepare le fichier de suivi de la progression
121prepareMonitoringDir
122
123# gpdebug : Execute la function errorReceive() si reception d'un signal TERM
124trap 'DEM_errorReceive' TERM ########
125
126# gpdebug : liste des processus à détruire en cas d'erreur bloquante
127export listPID=$$ ########
128
129# gpdebug : fichier pour la transmission des messages d'erreur d'un fils au prog principal
130export errorMsgFile="${TMP_MIGR_DATA}/errorMsg.txt" ########
131
132DEM_log -0 "Demarrage de ${SCRIPT_NAME}"
133
134mkdir -p ${IGCM_DEM}
135mkdir -p ${IGCM_TMP}
136
137rm -rf ${IGCM_TMP}/tmp/*
138rm -f ${DEM_LOG}
139
140# 0- on cree le listing correspondant au fichier param
141# on efface les tests precedents
142
143for DIR in $( awk '{print $0}' ${LISTE_SIMUL} ) ; do
144    eval DIR_FINAL=$DIR
145    ./create_listing.sh $DIR_FINAL
146done
147
148LISTE_DMNFS=${IGCM_DEM}/Listing.txt
149
150
151# 1- A partir de param_list - on recherche l'ensemble des simulations a packer
152# la liste creee (liste_simul_$1) est stockee dans $SCRATCHDIR/IGCM_DEM
153
154${EXE_DIR}/find_directory_simul.sh ${LISTE_SIMUL} ${LISTE_DMNFS}
155
156
157# 2- Pour chacune des simulations listees on cree un fichier config.card correspondant
158# ces fichiers seront stockes dans ${IGCM_DEM}/arborescence/
159# un fichier recapitulatif des fichiers config.card (config_card.liste) crees sera stocke dans ${IGCM_DEM}
160
161${EXE_DIR}/create_config_card.sh ${IGCM_DEM}/liste_simul_${LISTE_SIMUL_NAME}  ${LISTE_DMNFS}
162
163#3- recherche de la taille ideale de pack pour chacune des simulations - puis creation des listes
164
165for CONFIG in $( awk '{print $1}' ${IGCM_DEM}/config_card.liste ) ; do
166    DEM_log -2 ${CONFIG}
167
168    eval $(grep IGCM_DEM_SIMU ${CONFIG})
169    ${EXE_DIR}/calcul_size_simul.sh ${CONFIG} ${LISTE_DMNFS}
170
171    DEM_state=$( DEM_read_state ${IGCM_DEM}/config_card.liste ${CONFIG} )
172    if [[ "${DEM_state}" != "WriteListTarDone" ]] ; then
173
174        DEM_log -3  "la simulation est superieur a 1Go alors on pack"
175        ${EXE_DIR}/find_size_pack.sh   ${CONFIG} ${LISTE_DMNFS}
176        freq=$(cat ${IGCM_DEM_SIMU}/period_pack.txt)
177        if [[ "$Question" == "y" ]]; then
178            echo -e "L'outil de surpack vous propose une nouvelle frequence de pack de :  ${freq} annees "
179            echo -e "voulez vous continuer ? "
180            echo -n "(y/n) ? "
181            read ContinueAnswer
182            case ${ContinueAnswer} in     
183                oui|OUI|o|y|yes|YES)
184                    echo "OK nous continuons"
185                    continuePack=y
186                    ;;
187                non|NON|n|no|NO)
188                    echo "OK nous arretons tout"
189                    continuePack=n
190                    ;;
191                *)
192                    echo "I did not recognize your answer."
193                    echo "Please respond: oui|OUI|o|y|yes|YES"
194                    echo "Or please respond: non|NON|n|no|NO"
195                    exit
196                    ;;
197            esac
198        fi
199       
200        if [[ "$continuePack" == "y" ]] ; then
201            ${EXE_DIR}/write_liste_pack.sh ${CONFIG} ${LISTE_DMNFS}
202            ${EXE_DIR}/archive_restart.sh ${CONFIG} ${LISTE_DMNFS}
203            ${EXE_DIR}/archive_debug.sh ${CONFIG} ${LISTE_DMNFS}
204        fi
205           
206    fi
207done
208####################################################################
209
210DEM_log -0 "Fin de ${SCRIPT_NAME}"
Note: See TracBrowser for help on using the repository browser.