Préparation du calcul SVM
Voici les étapes à suivre pour compiler/lancer le code Matlab sur le mésocentre.
Connexion et transfert de fichiers
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
Prologue
Quelques modifications mineures dans le code sont nécessaires pour adapter le code à la compilation et à son exécution au mésocentre:
- 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
. - 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
exit
avant end
pour que le code généré se termine correctement. Sans exit
le code reste pendu !
Compilation
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
etrun_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 !
Exécution
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