Préparation du calcul SVM

Voici les étapes à suivre pour compiler/lancer le code Matlab sur le mésocentre.

La machine de connexion est mesologin1.univ-fcomte.fr

  • Se connecter avec SSH/Putty :
    ssh loginOfuser@mesologin1.univ-fcomte.fr
  • Le répertoire de travail est WORK ou encore /Work/Users/loginOfuser (la variable $WORK pointe aussi sur cet emplacement)
  • Une fois connecté se placer dans le répertoire :
    cd WORK 

Transférer les fichiers/programmes dans le répertoire WORK avec la commande Linux scp ou un outil graphique comme FileZilla.

Attention, tous les fichiers/programmes doivent être copiés dans $WORK et non dans $HOME.

Par exemple :

$ scp SVM.zip kmazouzi@mesologin1.univ-fcomte.fr:WORK

Quelques modifications mineures dans le code sont nécessaires pour adapter le code à la compilation et à son exécution au mésocentre:

  1. Dans OptimSubject.m, au début du fichier, modifier le chemin vers le répertoire contenant les codes source :
     if (~isdeployed)
     
           pathPrograms='/Work/Users/kmazouzi/SVM';
           addpath(genpath(pathPrograms));
     
          end

    Adapter la variable pathPrograms.

  2. Pour pouvoir compiler le code, il faut transformer le script principal en fonction, on englobe tout le code de OptimSubject.m dans une fonction :
    function OptimSubject
                  % inserer le code matlab ici
    exit
    end

Notez que j'ai rajouté exit avant end pour que le code généré se termine correctement. Sans exit le code reste pendu !

Nous utilisons Matlab r2015a pour la compilation. Voici les étapes à suivre, dans un terminal :

  • Se placer dans le répertoire contenant le code, par exemple
    $ cd /Work/Users/kmazouzi/SVM
  • Charger le module matlab/r2015a
    $ module load matlab/r2015a
  • Lancer la compilation
    $ mcc -mv  OptimSubject.m -a ./SVM_MM

    Cela va générer deux fichiers : OptimSubject et run_OptimSubject.sh

  • N.B : j'ai renommé le repertoire contenant les packages et les sources MAtlab par SVM_MM

La compilation peut prendre quelques minutes !

Nous allons utiliser SGE pour lancer le calcul sur les noeuds dédiés.

Voici un exemple de script à copier dans le répertoire contenant le code :

script.sge
#!/bin/bash 
 
#$ -V
#$ -N SVM_sge
#$ -cwd
#$ -o $JOB_NAME.$JOB_ID.out
#$ -pe openmp 16
#$ -l h_vmem=4G
 
 
## Load matlab, We just need the path to MCR, no license token will be used
 
module load matlab/r2015a
 
## Launch the program itself
 
./run_OptimSubject.sh $MATLAB_HOME

L'exécution peut ensuite être lancée avec la commande qsub :

$ qsub script.sge