|
Page 2 sur 3
Exécution de l'application
Après compilation, les différents exécutables de WPS et WRF peuvent être lancés soit en mode interactif, soit en batch, sur le cluster de calcul.
En mode interactif
Avant d'éxécuter WRF, il est nécessaire de supprimer la limite par défaut du stacksize
# en sh ou bash
ulimit -s unlimited
cd $WRFDIR
./wrf.exe
# en csh ou tcsh
limit stacksize unlimited
cd $WRFDIR
./wrf.exe
En mode batch sur le cluster (voir article ici )
Les deux scripts suivants montrent un exemple de scripts de lancement de WPS et de WRF sur le cluster. Pour activer le mode parallèle (DMPAR) lors de l'exécution - si celui-ci a été activé lors de la compilation - il suffit d'indiquer dans le script le nombre de noeuds et de processeurs par noeuds requis. Par exemple, l'instruction suivante du scripts PBS correspond à une requête de 2 noeuds et 2 processeurs par noeuds. Dans cet exemple, la commande mpirun lancera 4 instances de WRF en parallèle.
#PBS -l "nodes=2:ppn=2"
Pour exécuter WPS ou WRF sur un seul processeur, il suffit de spécifier :
#PBS -l "nodes=1:ppn=1"
Exemple de script PBS (run_wps.pbs) pour les instructions de WPS :
#!/bin/sh
####################################
# Script to run geogrid.exe, metgrid.exe, ungrib.exe
# To start this job: qsub run_wps.pbs
####################################
####### Resources used #######
## MPIRUN will use the total number
## of CPUs reserved here :
#PBS -l "nodes=2:ppn=2"
#PBS -q std
####### Job Outouts configuration #######
# Send a mail when the job ends or fails
#PBS -m ae
# Joins standard and Error outputs in a single file
#PBS -j oe
####### Set Applications PATHS #######
TOPDIR=$HOME/WRF
WPSDIR=$TOPDIR/WPS
GRIBDIR=/data/grib_files_dir
####### Job Instructions #######
# Change to the WPS directory
cd $WPSDIR
# Run job :
mpirun geogrid.exe
./link_grib.csh $GRIBDIR/*.grb
mpirun ungrib.exe
mpirun metgrid.exe
Le script est soumis au cluster de calcul par la commande :
qsub run_wps.pbs
Exemple de script PBS (run_wrf.pbs) pour WRF :
Le script suivant permet, en plus d'exécuter WRF, de fixer la valeur du stacksizeà unlimited pour éviter une erreur de segmentation lors de l'exécution.
#!/bin/sh
####################################
# Script to run wrf.exe
# To start this job: qsub run_wrf.pbs
####################################
####### Resources used #######
## MPIRUN will use the total number
## of CPUs reserved here :
#PBS -l "nodes=2:ppn=2"
#PBS -q std
####### Job Outouts configuration #######
# Send a mail when the job ends or fails
#PBS -m ae
# Joins standard and Error outputs in a single file
#PBS -j oe
####### Set Applications PATHS #######
TOPDIR=$HOME/WRF
WRFDIR=$TOPDIR/WRFV3
####### Job Instructions #######
# Change to the WRF.exe directory
cd $WRFDIR/run
# Execute real.exe
./real.exe
# Create a SHELL script which set stacksize unlimited
# and run wrf.exe
SHSCRIPT=wrf.sh.$$
cat << EOF > $SHSCRIPT
#!/bin/sh
ulimit -s unlimited
./wrf.exe
EOF
chmod 755 $SHSCRIPT
# Run job
mpirun $SHSCRIPT
rm $SHSCRIPT
Le script est soumis au cluster de calcul par la commande :
qsub run_wrf.pbs
|