Matlab

Versions installées

Sur lumière :

  • matlab/r2013b
  • Matlab2014a
  • Matlab2014b
  • Matlab2015a
  • Matlab2016b

Use module avail matlab to view the list of available matlab

Toolbox

10 jetons + les toolbox suivantes :

  • Simulink (1 jeton)
  • Image Processing Toolbox (1 jeton)
  • Optimization Toolbox (1 jeton)
  • Signal Processing Toolbox (1 jeton)
  • Symbolic Math Toolbox (1 jeton)
  • Statistics Toolbox (1 jeton)
  • Compilateur (2 jetons) | Documentation
  • Parallel Toolbox (1 jeton) | Documentation

Mode interactif

Le mode interactif consiste à lancer matlab en mode graphique

  • Ce mode est utilisé pour tester les programmes, pour un long calcul, merci d'utiliser le mode batch
  • Le noeud de calcul interactif redémarre chaque nuit

  • Se connecter sur la machine mesoshared.univ-fcomte.fr en utilsant X2GO voir la doc
  • Depuis un terminal, charger la version de matlab en utilisant :
  $ module load matlab
 
  • Lancer matlab
  $ matlab
 

Mode Batch (SGE)

Pour le mode Batch il faut utiliser le cluster Lumière mesologin1.univ-fcomte.fr

Notez la présence de l'option : #$ -l matlab=1 dans le script SGE

Lancer Matlab en séquentiel sur 1 seul processeur/coeur

Il faut rajouter l'option -singleCompThread au lancement de matlab

matlab_seq.sge
#!/bin/bash -l
 
#$ -q all.q     ## file d'attente a utiliser   
 
#$ -l matlab=1    ## on demande matlab 
 
#$ -o $JOB_NAME.o$JOB_ID ## fichier de sortie
 
#$  -m bea ## alerte on begin, end of job
 
#$  -M YourEmailAdress@here    ## put your email adress
 
#$ -N job_exemple_Matlab   ## le jnom du job
 
# Demander 4 Go de mémoire vive pour le job
#$ -l h_vmem=4G
 
module load matlab   
 
matlab  -singleCompThread -nodisplay -nodesktop -nojvm -nosplash < monprogramme.m

Après on lance avec la commande :

$ qsub matlab_seq.sge

On vérifié la soumission avec :

$ qstat

Pour plus d'information sur l'utilisation de SGE consulter cette page Grid Engine

Lancer Matlab sur plusieurs processeurs/coeurs

Il faut activer le parallélisme natif de matlab pour bénéficier du support parallèle.

Notez l'absence de l'option -singleCompThread de la ligne de commande

Par défaut matlab utilise tous les cœurs/processeurs disponibles sur la machine. Pour respecter le découpage SGE, il faut demander, à SGE, un noeud entier avec tous les coeurs.

Voici un exemple de script qui demande 16 coeurs :

matlab_para.sge
#!/bin/bash   
 
#$ -q all.q     ## file d'attente a utiliser 
 
#$ -l matlab=1    ## on demande matlab 
 
#$ -o $JOB_NAME.o$JOB_ID ## fichier de sortie
 
#$  -m bea ## alerte on begin, end of job
 
#$  -M YourEmailAdress@here    ## put your email adress
 
#$ -N job_exemple_Matlab   ## le jnom du job
 
 
#$ -pe openmp 8      ## on demande 8 coeurs
 
# Demander 4 Go de mémoire vive par coeur
#$ -l h_vmem=4G
 
module load matlab   
matlab  -nodisplay -nodesktop  -nosplash < monprogramme.m

Après on lance avec la commande :

$ qsub matlab_para.sge

See also