#!/bin/bash # fichier script shell # une ligne commençant par #PBS est une commande PBS # une ligne commençant par # est un commentaire # le shell utilisé par PBS pour interpréter # le fichier est bash #PBS -S /bin/bash # nom du job (facultatif) # 15 caractères maximun #PBS -N JobName # par défaut, les flux "output" et "error" sont envoyés # dans des fichiers situés dans le répertoire de # travail (PBS_O_WORKDIR) et dont les noms sont : # job_name.osequence_number <- output # job_name.esequence_number <- error # où job_name est le nom du job et sequence_number et # le numéro du job qui est assigné lors de la soumission # On peut changer les noms par défaut en utilisant les # commandes suivantes : # #PBS -o stdout_file # #PBS -e stderr_file # Pour éviter d'avoir trop de fichiers, on peut # regrouper les flux "output et "error" dans un seul # fichier : #PBS -j oe # PBS peut envoyer des informations sur l'état du job # par email : # un simple caractère "n" (pas de mail) # #PBS -m n # un ou plusieurs caractères : # "a" envoi email si le job est avorté, # "b" envoi email lorsque le job débute # "e" envoir email lorsque le job se termine # #PBS -m abe # #PBS -m ae # l'adresse email est spécifié par la commande # #PBS -M cros@iup.univ-evry.fr # ressources demandées : # 2 noeuds : nodes=2 # 2 processeur par noeud : ppn=2 #PBS -l nodes=2:ppn=2 # création des fichiers de configuration pour mpi # détermination du nombre de noeuds et processeurs # NE PAS MODIFIER CES LIGNES nodes=`cat $PBS_NODEFILE` nnodes=`wc $PBS_NODEFILE | awk '{print $1}'` confile=~/ip.$PBS_JOBID.conf touch $confile j="init" for i in $nodes do if [ $j != $i ] then echo "$i.alineos.net:2" >> $confile fi j=$i done # FIN d'INTERDICTION DE MODIFICATION # PBS_O_WORKDIR correspond au répertoire où a été lancé # le script, affichage pour vérification : echo $PBS_O_WORKDIR # déplacement dans le répertoire où se trouve # l'exécutable cd $PBS_O_WORKDIR # lancement du calcul echo "début du calcul à `date`" /usr/local/mpich-intel/bin/mpirun -np $nnodes -machinefile $confile test_mpi echo "fin du calcul à `date`" # la même chose mais avec redirection des impressions # dans un fichier echo "début du calcul à `date`" /usr/local/mpich-intel/bin/mpirun -np $nnodes -machinefile $confile test_mpi &> test.out2 echo "fin du calcul à `date`" # effacement du fichier de configuration /bin/rm -f $confile