source: TOOLS/PACK_IPSL/launch_ipsl_pack.sh @ 1876

Last change on this file since 1876 was 1875, checked in by gpincka, 12 years ago

portage sur machine ulam de l'idris

File size: 5.8 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
16export JOB_DIR=${LS_SUBCWD:-${PWD}}
17export EXE_DIR=${JOB_DIR}
18
19# Est-on sur ulam (machine de l'IDRIS) ?
20is_idris_machine=`hostname | grep "ulam" | wc -l `
21ON_IDRIS="no"
22if [ "x${is_idris_machine}" != "x0" ]
23then
24    ON_IDRIS="yes"
25fi
26export ON_IDRIS=${ON_IDRIS}
27
28##### gpdebug : addition ##################################
29# Boucle qui gere les parametres du script (permet l'introduction d'une option -f
30# qui force l'execution de toute les etapes du script de listes)
31execEveryStep=0
32LISTE_SIMUL=
33while [ $# -gt 0 ]
34do
35   echo "boucle sur les arguments du script ..."
36   echo "@=$@"
37   case $1 in
38   -f)  execEveryStep=1
39        echo "force..."
40        ;;
41   *)  LISTE_SIMUL=${1} 
42       echo "autres..."
43       ;;
44   
45   esac
46   shift
47done
48echo "Fin boucle sur arguments"
49export execEveryStep=${execEveryStep}
50if [ "x${LISTE_SIMUL}" == "x" ]
51then
52    echo "Vous devez passer un fichier en parametre"
53    exit 1
54fi
55
56# fichier de progression d'execution
57ficParam=$( basename ${LISTE_SIMUL} ) # gpdebug : modif ici et ligne d'apres
58extSuiviListes=`echo ${ficParam} | sed 's;\.[[:alnum:]]*$;;' `
59# echo "extSuiviListes=$extSuiviListes" # gpdebug : a virer
60export MonitoringDir="${PWD}/SuiviListes_${extSuiviListes}"
61# echo "MonitoringDir=$MonitoringDir" # gpdebug : a virer
62# exit 0  # gpdebug : a virer
63
64export generalMonitorFile=${MonitoringDir}/general.txt
65export nbSimuFile=${MonitoringDir}/nbSimu.txt
66
67##### gpdebug : fin #####################################
68
69# LISTE_SIMUL=${1} # gpdebug : suppr --> cette affectation est maintenant faite dans la boucle while des arg du script ################
70
71#LISTE_SIMUL=${JOB_DIR}/param_SL.txt
72#LISTE_DMNFS=${JOB_DIR}/SL_information_dmnfs_2012-03-21
73
74# LISTE_SIMUL=${JOB_DIR}/param_OM.txt
75# LISTE_DMNFS=${JOB_DIR}/OM_information_dmnfs_2012-03-21
76
77LISTE_SIMUL_NAME=$(basename ${LISTE_SIMUL} )
78SCRIPT_NAME=$(basename ${0} )
79
80# On renseigne les variables d'environnement
81export scriptCallingLoad=$SCRIPT_NAME # sert a renseigner "load_ipslPack_env.sh" sur le script l'appelant
82. load_ipslPack_env.sh
83
84if [ "x${IGCM_DEM}" == "x" ]
85then
86    echo "variable IGCM_DEM non renseignee. STOP."
87    exit 1
88fi
89# rm -f ${IGCM_DEM}/Listing.txt # gpdebug : en cas de reprise, on ne peut pas laisser ca en l'etat --> suppr
90# gpdebug : Donc on rajoute le if qui suit
91if [ "x${execEveryStep}" == "x1" ]
92then
93    echo "Destruction du repertoire :"
94    echo "${IGCM_DEM}"
95    rm -rf ${IGCM_DEM}
96fi
97
98export IGCM_TMP="${IGCM_DEM}/tmp"  # gpdebug : added
99# INPUT_DMF_DATA, positionnee par le load_ipslPack_env.sh, sert pour pour PATH_SIMUL_SHORT dans create_config_card.sh
100
101export clean_tmp=${clean_tmp:-yes}
102export DEM_LOG=${JOB_DIR}/dem_${LSB_JOBID:-${$}}.log
103export LOG_LEV=2
104export FileParam=${LISTE_SIMUL} # gpdebug : pour appel (dans DEM_utilities.sh) a showListsProgress.sh
105export FatherPID=$$ # gpdebug : pour appel (dans DEM_utilities.sh) a showListsProgress.sh
106
107source ${EXE_DIR}/DEM_utilities.sh
108
109# gpdebug : prepare le fichier de suivi de la progression
110prepareMonitoringDir
111
112# gpdebug : Execute la function errorReceive() si reception d'un signal TERM
113trap 'DEM_errorReceive' TERM ########
114
115# gpdebug : liste des processus à détruire en cas d'erreur bloquante
116export listPID=$$ ########
117
118# gpdebug : fichier pour la transmission des messages d'erreur d'un fils au prog principal
119export errorMsgFile="${PWD}/errorMsg.txt" ########
120
121DEM_log -0 "Demarrage de ${SCRIPT_NAME}"
122
123mkdir -p ${IGCM_DEM}
124mkdir -p ${IGCM_TMP}
125
126rm -rf ${IGCM_TMP}/tmp/*
127rm -f ${DEM_LOG}
128
129# 0- on cree le listing correspondant au fichier param
130# on efface les tests precedents
131
132for DIR in $( awk '{print $0}' ${LISTE_SIMUL} ) ; do
133    ./create_listing.sh $DIR
134done
135
136LISTE_DMNFS=${IGCM_DEM}/Listing.txt
137
138# 1- A partir de param_list - on recherche l'ensemble des simulations a packer
139# la liste creee (liste_simul_$1) est stockee dans $SCRATCHDIR/IGCM_DEM
140
141${EXE_DIR}/find_directory_simul.sh ${LISTE_SIMUL} ${LISTE_DMNFS}
142
143# sleep 2 # gpdebug : a virer
144# echo "Le script principal continue..." # gpdebug : a virer
145# exit 0 # gpdebug : a virer
146
147####################################################################
148# gpdebug : partie vidée pour simplifier.  Voir le fichier original.
149
150# 2- Pour chacune des simulations listees on cree un fichier config.card correspondant
151# ces fichiers seront stockes dans ${IGCM_DEM}/arborescence/
152# un fichier recapitulatif des fichiers config.card (config_card.liste) crees sera stocke dans ${IGCM_DEM}
153
154${EXE_DIR}/create_config_card.sh ${IGCM_DEM}/liste_simul_${LISTE_SIMUL_NAME}  ${LISTE_DMNFS}
155
156# exit 0 # gpdebug : a virer #########
157
158#3- recherche de la taille ideale de pack pour chacune des simulations - puis creation des listes
159
160for CONFIG in $( awk '{print $1}' ${IGCM_DEM}/config_card.liste ) ; do
161   
162    DEM_log -2 ${CONFIG}
163
164    eval $(grep IGCM_DEM_SIMU ${CONFIG})
165    ${EXE_DIR}/calcul_size_simul.sh ${CONFIG} ${LISTE_DMNFS}
166    # exit 0 # gpdebug : a virer #########
167    DEM_state=$( DEM_read_state ${IGCM_DEM}/config_card.liste ${CONFIG} )
168    if [[ "${DEM_state}" != "WriteListTarDone" ]] ; then
169
170        DEM_log -3  "la simulation est superieur a 1Go alors on pack"
171        ${EXE_DIR}/find_size_pack.sh   ${CONFIG} ${LISTE_DMNFS}
172        ${EXE_DIR}/write_liste_pack.sh ${CONFIG} ${LISTE_DMNFS}
173        ${EXE_DIR}/archive_restart.sh ${CONFIG} ${LISTE_DMNFS}
174        # DEM_errorSend "${SCRIPT_NAME}:${LINENO}:On arrete expres !" # gpdebug : a virer ########
175        ${EXE_DIR}/archive_debug.sh ${CONFIG} ${LISTE_DMNFS}
176
177    fi
178done
179####################################################################
180
181DEM_log -0 "Fin de ${SCRIPT_NAME}"
Note: See TracBrowser for help on using the repository browser.