PBS et matlab
Révision datée du 19 juillet 2017 à 07:36 par Caveenj (discussion | contributions) (→Exécution en lot d'une tâche Matlab)
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