Différences entre versions de « PBS et matlab »

De POLR
Sauter à la navigation Sauter à la recherche
Ligne 37 : Ligne 37 :
 
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim3.log -r "try; run('produire_anim3.m'); catch; end; quit" &
 
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim3.log -r "try; run('produire_anim3.m'); catch; end; quit" &
 
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim4.log -r "try; run('produire_anim4.m'); catch; end; quit" &
 
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim4.log -r "try; run('produire_anim4.m'); catch; end; quit" &
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim5.log -r "try; run('produire_anim5.m'); catch; end; quit"  
+
  matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim5.log -r "try; run('produire_anim5.m'); catch; end; quit" &
 +
 +
wait
  
  

Version du 18 juillet 2017 à 15:58

Exécution en lot d'une tâche Matlab

Il est possible de lancer l'exécution automatique d'un script lors du lancement de Matlab en utilisant la syntaxe suivante:

matlab -nojvm -nosplash -nodesktop -nodisplay -logfile <fichier_log>.log -r "try; run('<fichier_matlab>'); catch; end; quit"


Cette commande lancera Matlab et celui-ci exécutera automatiquement le code contenu dans le script <fichier_matlab>. Les messages résultant de l’exécution seront écrits dans le fichier <fichier_log>.


Exemple:

matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim.log -r "try; run('produire_anim.m'); catch; end; quit"


Grâce à cette approche, il devient alors facile de soumettre une ou plusieurs tâches Matlab pour exécution sur un nœud de calcul de la grappe mingan en utilisant un script PBS pour lancer le tout.

#!/bin/bash
###################################################
#
#Soumettre un ensemble de taches matlab sur un noeud de calcul
#
###################################################
#PBS -q default
#PBS -l nodes=1:ppn:5
#PBS -l mem=50gb
#PBS -N tache_matlab
#PBS -l walltime=05:00:00
#PBS -j oe
cd $PBS_O_WORK_DIR
module load matlab2015b
matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim1.log -r "try; run('produire_anim1.m'); catch; end; quit" &
matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim2.log -r "try; run('produire_anim2.m'); catch; end; quit" &
matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim3.log -r "try; run('produire_anim3.m'); catch; end; quit" &
matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim4.log -r "try; run('produire_anim4.m'); catch; end; quit" &
matlab -nojvm -nosplash -nodesktop -nodisplay -logfile produire_anim5.log -r "try; run('produire_anim5.m'); catch; end; quit" &

wait