MATLAB/fr: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
Line 6: | Line 6: | ||
* en compilant votre code en un binaire pouvant être exécuté sur les bibliothèques MATLAB Compiler Runtime (MCR). | * en compilant votre code en un binaire pouvant être exécuté sur les bibliothèques MATLAB Compiler Runtime (MCR). | ||
<div class="mw-translate-fuzzy"> | |||
==Votre licence== | ==Votre licence== | ||
Calcul Canada est fournisseur d'hébergement pour MATLAB. Dans ce contexte, MATLAB est installé sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous nos utilisateurs. Cependant, plusieurs institutions, facultés et départements possèdent des licences qui peuvent être utilisées sur nos grappes. De façon générale, toute licence émise à des fins de recherche peut être utilisée sur nos grappes; plus précisément, toute licence ''Total Academic Headcount'' de MATLAB peut être utilisée avec notre infrastructure, comme en fait foi une confirmation écrite de MathWorks. | Calcul Canada est fournisseur d'hébergement pour MATLAB. Dans ce contexte, MATLAB est installé sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous nos utilisateurs. Cependant, plusieurs institutions, facultés et départements possèdent des licences qui peuvent être utilisées sur nos grappes. De façon générale, toute licence émise à des fins de recherche peut être utilisée sur nos grappes; plus précisément, toute licence ''Total Academic Headcount'' de MATLAB peut être utilisée avec notre infrastructure, comme en fait foi une confirmation écrite de MathWorks. | ||
Le libellé de la licence n'est pas clair à cet effet et il peut sembler que votre licence ne puisse pas être utilisée hors de votre campus. Nous vous suggérons de demander au responsable de la gestion des licences pour votre établissement de communiquer avec un représentant MathWorks. | Le libellé de la licence n'est pas clair à cet effet et il peut sembler que votre licence ne puisse pas être utilisée hors de votre campus. Nous vous suggérons de demander au responsable de la gestion des licences pour votre établissement de communiquer avec un représentant MathWorks. | ||
</div> | |||
En ce qui a trait à l'aspect technique, nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence. Si ce n'est déjà fait, notre équipe technique coordonnera ceci avec votre gestionnaire de licence. Quand tout sera en place, vous pourrez charger le module MATLAB qui localisera de lui-même la licence. En cas de difficulté, contactez le [[Technical support/fr|soutien technique]]. | En ce qui a trait à l'aspect technique, nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence. Si ce n'est déjà fait, notre équipe technique coordonnera ceci avec votre gestionnaire de licence. Quand tout sera en place, vous pourrez charger le module MATLAB qui localisera de lui-même la licence. En cas de difficulté, contactez le [[Technical support/fr|soutien technique]]. | ||
Line 16: | Line 18: | ||
Voici un script simple pour l'ordonnanceur qui soumet le script ''cosplot.m'' montré plus bas. | Voici un script simple pour l'ordonnanceur qui soumet le script ''cosplot.m'' montré plus bas. | ||
<div class="mw-translate-fuzzy"> | |||
{{File | {{File | ||
|name=matlab_slurm.sl | |name=matlab_slurm.sl | ||
Line 30: | Line 33: | ||
#SBATCH --mail-user=bmoa@uvic.ca #adjust this to match your email address | #SBATCH --mail-user=bmoa@uvic.ca #adjust this to match your email address | ||
#SBATCH --mail-type=ALL | #SBATCH --mail-type=ALL | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
#Chargez le module matlab. | #Chargez le module matlab. | ||
module load matlab/2017a | module load matlab/2017a | ||
Line 36: | Line 41: | ||
matlab -nodisplay -nosplash -singleCompThread -r "cosplot" | matlab -nodisplay -nosplash -singleCompThread -r "cosplot" | ||
}} | }} | ||
</div> | |||
Vous pouvez maintenant soumettre la tâche avec la commande <tt>sbatch</tt> habituelle. | Vous pouvez maintenant soumettre la tâche avec la commande <tt>sbatch</tt> habituelle. | ||
Line 42: | Line 48: | ||
<div class="mw-translate-fuzzy"> | |||
== Utiliser les bibliothèques MCR == | == Utiliser les bibliothèques MCR == | ||
Comme la licence de Calcul Canada ne nous permet pas de l'installer, vous devez avoir accès au compilateur MATLAB sous la plateforme Linux. | Comme la licence de Calcul Canada ne nous permet pas de l'installer, vous devez avoir accès au compilateur MATLAB sous la plateforme Linux. | ||
Consultez la [https://www.mathworks.com/help/compiler/index.html documentation MATLAB Compiler]. | Consultez la [https://www.mathworks.com/help/compiler/index.html documentation MATLAB Compiler]. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
{{File | {{File | ||
|name=cosplot.m | |name=cosplot.m | ||
Line 56: | Line 65: | ||
np=100; | np=100; | ||
y(1:np)=pi/2.0; | y(1:np)=pi/2.0; | ||
x(1:np)=linspace(-2.0*pi,2*pi,np); | x(1:np)=linspace(-2.0*pi,2*pi,np); | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
for k=1:nterms | for k=1:nterms | ||
twokm=2*k-1; | twokm=2*k-1; | ||
y=y-fourbypi*cos(twokm*x)/twokm^2; | y=y-fourbypi*cos(twokm*x)/twokm^2; | ||
end; | end; | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
%(The following commands for generating graphics output work | %(The following commands for generating graphics output work | ||
% with MATLAB 7 on glacier but produce empty plots with MATLAB 6 | % with MATLAB 7 on glacier but produce empty plots with MATLAB 6 | ||
Line 71: | Line 84: | ||
end | end | ||
}} | }} | ||
</div> | |||
Compilez avec la commande | Compilez avec la commande | ||
{{Command|prompt=[name@yourserver ~]$|mcc -m -R -nodisplay cosplot.m}} | {{Command|prompt=[name@yourserver ~]$|mcc -m -R -nodisplay cosplot.m}} | ||
Ceci produit le binaire <tt>cosplot</tt> et le script enveloppant <tt>run_cosplot.sh</tt>. Ce script ne fonctionnera pas tel quel sur les serveurs de Calcul Canada puisque MATLAB veut que certaines bibliothèques se trouvent à des endroits spécifiques. Utilisez plutôt le script enveloppant <tt>run_mcr_binary.sh</tt> qui définit les bons chemins. | <div class="mw-translate-fuzzy"> | ||
Ceci produit le binaire <tt>cosplot</tt> et le script enveloppant <tt>run_cosplot.sh</tt>. Ce script ne fonctionnera pas tel quel sur les serveurs de Calcul Canada puisque MATLAB veut que certaines bibliothèques se trouvent à des endroits spécifiques. Utilisez plutôt le script enveloppant <tt>run_mcr_binary.sh</tt> qui définit les bons chemins. | |||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
[[Utiliser des modules|Chargez le module]] MCR correspondant à la version que vous utilisez pour créer l'exécutable | [[Utiliser des modules|Chargez le module]] MCR correspondant à la version que vous utilisez pour créer l'exécutable | ||
{{Command|module load mcr/R2017b}} | {{Command|module load mcr/R2017b}} | ||
</div> | |||
Lancez la commande | Lancez la commande |
Revision as of 14:52, 5 June 2018
Utiliser MATLAB sur les grappes de Calcul Canada
Vous pouvez utiliser MATLAB
- avec votre licence, habituellement détenue par votre institution, faculté, département ou laboratoire, ou
- en compilant votre code en un binaire pouvant être exécuté sur les bibliothèques MATLAB Compiler Runtime (MCR).
Votre licence
Calcul Canada est fournisseur d'hébergement pour MATLAB. Dans ce contexte, MATLAB est installé sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous nos utilisateurs. Cependant, plusieurs institutions, facultés et départements possèdent des licences qui peuvent être utilisées sur nos grappes. De façon générale, toute licence émise à des fins de recherche peut être utilisée sur nos grappes; plus précisément, toute licence Total Academic Headcount de MATLAB peut être utilisée avec notre infrastructure, comme en fait foi une confirmation écrite de MathWorks. Le libellé de la licence n'est pas clair à cet effet et il peut sembler que votre licence ne puisse pas être utilisée hors de votre campus. Nous vous suggérons de demander au responsable de la gestion des licences pour votre établissement de communiquer avec un représentant MathWorks.
En ce qui a trait à l'aspect technique, nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence. Si ce n'est déjà fait, notre équipe technique coordonnera ceci avec votre gestionnaire de licence. Quand tout sera en place, vous pourrez charger le module MATLAB qui localisera de lui-même la licence. En cas de difficulté, contactez le soutien technique.
Important : Comme pour toutes les tâches aux exigences élevées, le code MATLAB doit toujours être inclus dans une tâche soumise à l'ordonnanceur; consultez Exécuter des tâches.
Voici un script simple pour l'ordonnanceur qui soumet le script cosplot.m montré plus bas.
#!/bin/bash -l
#SBATCH --job-name=Matlab_test
#SBATCH --account=def-bmoa #adjust this to match the accounting group you are using to submit jobs
#SBATCH --time=0-03:00 #adjust this to match the walltime of your job
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1 #adjust this if you are using PCT
#SBATCH --mem=4000 #adjust this according to your the memory requirement per node you need
#SBATCH --mail-user=bmoa@uvic.ca #adjust this to match your email address
#SBATCH --mail-type=ALL
</div>
<div class="mw-translate-fuzzy">
#Chargez le module matlab.
module load matlab/2017a
#Omettez -singleCompThread si vous utilisez PCT.
matlab -nodisplay -nosplash -singleCompThread -r "cosplot"
Vous pouvez maintenant soumettre la tâche avec la commande sbatch habituelle.
[name@server ~]$ sbatch matlab_slurm.sl
Utiliser les bibliothèques MCR
Comme la licence de Calcul Canada ne nous permet pas de l'installer, vous devez avoir accès au compilateur MATLAB sous la plateforme Linux. Consultez la documentation MATLAB Compiler.
% MATLAB M-file example to approximate a sawtooth
% with a truncated Fourier expansion.
nterms=5;
fourbypi=4.0/pi;
np=100;
y(1:np)=pi/2.0;
x(1:np)=linspace(-2.0*pi,2*pi,np);
</div>
<div class="mw-translate-fuzzy">
for k=1:nterms
twokm=2*k-1;
y=y-fourbypi*cos(twokm*x)/twokm^2;
end;
</div>
<div class="mw-translate-fuzzy">
%(The following commands for generating graphics output work
% with MATLAB 7 on glacier but produce empty plots with MATLAB 6
% on some other clusters.)
plot(x,y);
print -dpsc matlab_test_plot.ps;
quit;
end
Compilez avec la commande
[name@yourserver ~]$ mcc -m -R -nodisplay cosplot.m
Ceci produit le binaire cosplot et le script enveloppant run_cosplot.sh. Ce script ne fonctionnera pas tel quel sur les serveurs de Calcul Canada puisque MATLAB veut que certaines bibliothèques se trouvent à des endroits spécifiques. Utilisez plutôt le script enveloppant run_mcr_binary.sh qui définit les bons chemins.
Chargez le module MCR correspondant à la version que vous utilisez pour créer l'exécutable
[name@server ~]$ module load mcr/R2017b
Lancez la commande
[nom@serveur ~]$ run_mcr_binary.sh cosplot
puis utilisez le binaire comme suit :
[nom@serveur ~]$ setrpaths.sh --path cosplot
La commande setrpaths.sh ne doit être exécutée qu'une seule fois pour chacun des binaires compilés; run_mcr_binary.sh vous demandera de l'exécuter si ce n'est pas fait.
Important : Comme pour toutes les tâches aux exigences élevées, le code MCR doit toujours être inclus dans une tâche soumise à l'ordonnanceur; consultez Exécuter des tâches.