Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
logiciels:matlab [2014/10/04 22:50] montap01 [Bla] |
logiciels:matlab [2023/10/16 12:21] (Version actuelle) montap01 |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
MATLAB® est un logiciel commercial développé par la société Mathworks. Matlab est un langage de haut niveau et un environnement interactif pour le calcul numérique, la visualisation et la programmation. | MATLAB® est un logiciel commercial développé par la société Mathworks. Matlab est un langage de haut niveau et un environnement interactif pour le calcul numérique, la visualisation et la programmation. | ||
- | |||
- | ===== Bla ===== | ||
- | |||
- | Test | ||
* Site web : http:// | * Site web : http:// | ||
Ligne 13: | Ligne 9: | ||
* 2008a | * 2008a | ||
* R2014a | * R2014a | ||
+ | * R2017b | ||
+ | * R2019b | ||
- | ==== Toolbox ==== | + | <note warning> |
- | Matlab | + | CALI ne dispose pas de licences |
- | + | </ | |
- | Toolbox disponibles sur CALI : | + | |
- | + | ||
- | MATLAB | + | |
- | Image Processing Toolbox | + | |
- | Optimization Toolbox | + | |
- | Partial Differential Equation Toolbox | + | |
- | Signal Processing Toolbox | + | |
- | System Identification Toolbox | + | |
===== Utilisation ===== | ===== Utilisation ===== | ||
Ligne 33: | Ligne 22: | ||
Par exemple : | Par exemple : | ||
module load matlab/ | module load matlab/ | ||
- | ==== Travailler avec slurm ==== | + | |
- | Voir les exemples | + | ==== Indiquer votre gestionnaire de licences ==== |
+ | Pré-requis : | ||
+ | - Votre laboratoire doit disposer d'un // | ||
+ | - Vous devez connaître le //nom DNS// de ce gestionnaire de licences, et le //numéro de port// utilisé | ||
+ | - L' | ||
+ | |||
+ | Une fois ces conditions remplies, positionnez une variable d' | ||
+ | <file bash> | ||
+ | export MLM_LICENSE_FILE < | ||
+ | </ | ||
+ | en remplaçant ''< | ||
+ | |||
+ | |||
+ | ==== Travailler avec slurm en mode séquentiel | ||
+ | |||
+ | Le principe consiste à préparer un fichier de commande matlab, puis à lancer dans le job slurm le logiciel matlab en lui demandant d' | ||
+ | |||
+ | |||
+ | Ci-dessous un exemple qui calcule la produit de deux matrices et sauve la résultat dans un fichier de sortie au format matlab '' | ||
+ | |||
+ | - Préparation du script matlab, dans le fichier '' | ||
+ | % Creation de deux matrices aleatoires 100x100 | ||
+ | A=rand(100); | ||
+ | B=rand(100); | ||
+ | |||
+ | % Produit matriciel | ||
+ | AB=A*B; | ||
+ | |||
+ | disp(sprintf(' | ||
+ | |||
+ | % Sauvegarde du resultat dans " | ||
+ | save out.mat AB; | ||
+ | </ | ||
+ | - Préparation du job slurm (fichier '' | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | #SBATCH --partition=rapide | ||
+ | #SBATCH --ntasks=1 | ||
+ | #SBATCH --mem-per-cpu=1000 | ||
+ | #SBATCH --time=00: | ||
+ | |||
+ | module load matlab | ||
+ | matlab -nojvm -nosplash -nodisplay -singleCompThread -r " | ||
+ | </ | ||
+ | - Soumission du travail < | ||
+ | sbatch matmul.sbatch | ||
+ | </ | ||
+ | |||
+ | :!: Notez que : | ||
+ | * l' | ||
+ | * la commande '' | ||
+ | * la quantité de mémoire demandée, et le temps prévisionnel d' | ||
+ | * vous devez choisir la partition en fonction de vos besoins (voir l' | ||
+ | |||
+ | ==== Execution sous slurm en multi-threadé ==== | ||
+ | Sans l' | ||
+ | |||
+ | Il faut alors que votre réservation //slurm// corresponde au nombre de threads utilisés par matlab. | ||
+ | |||
+ | * Solution 1 : vous réservez un noeud entier et vous laissez matlab utiliser tous les threads | ||
+ | * Solution 2 : vous indiquez dans slurm une réservation de N coeurs et vous faites appel à la fonction matlab '' | ||
+ | |||
+ | Pour reprendre l' | ||
+ | - Script '' | ||
+ | cpus=str2num(getenv(' | ||
+ | maxNumCompThreads(cpus); | ||
+ | disp(sprintf(' | ||
+ | |||
+ | % Creation de deux matrices aleatoires 100x100 | ||
+ | A=rand(100); | ||
+ | B=rand(100); | ||
+ | |||
+ | % Produit matriciel | ||
+ | AB=A*B; | ||
+ | |||
+ | disp(sprintf(' | ||
+ | |||
+ | % Sauvegarde du resultat dans " | ||
+ | save out.mat AB; | ||
+ | </ | ||
+ | - Script '' | ||
+ | #!/bin/bash | ||
+ | #SBATCH --partition=rapide | ||
+ | #SBATCH --ntasks=1 | ||
+ | #SBATCH --cpus-per-task=4 | ||
+ | #SBATCH --mem-per-cpu=1000 | ||
+ | #SBATCH --time=00: | ||
+ | module load matlab | ||
+ | echo " | ||
+ | matlab -nojvm -nosplash -nodisplay -r " | ||
+ | </ |