Compiler un programme matlab permet d’obtenir un exécutable qui fonctionne sans license matlab et sans interface graphique (donc avec les arguments et fichiers passés en ligne de commande). Les licences sont justes nécessaires pendant la compilation (et en particulier la licence Compiler Toolbox).
En Avril 2024 :
module load tools/matlab/R2019a
) est disponible sur PlaFRIM3.bureau
.En revanche, pas de licence Matlab disponible sur Curta. Il est néanmoins possible de compiler sur diskless IMB ou PlaFRIM3, puis de recopier le binaire sur Curta et le faire tourner en utilisant le module runtime matlab (modules matlab/MCR_...
). Il faut dans ce cas utiliser le module ayant LA MÊME VERSION que celle utilisée pour la compilation.
Exemple avec un code fabriquant des carré magique dont la taille est passée comme un argument en ligne de commande :
Créer le code matlab magic.m
:
cat > magic.m <<'EOF'
function m = anonyme(n)
if ischar(n)
n=str2num(n);
end
x = 1:n;
y = 1:n;
m = transpose(x)*y
EOF
Compiler magic.m
pour produire l’exécutable magic
.
Sur PlaFRIM3 :
module purge
module load tools/matlab/R2019
mcc -mv magic.m
Sur diskless (matlab R2020b) :
mcc -mv magic.m
Exécuter sur PlaFRIM3 :
module purge
module load tools/matlab/MCR_R2019b
./magic 10
Note : sur PlaFRIM3, le module Matlab standard inclut également le runtime Matlab
Exécuter sur Curta/MCIA un code compilé sur PlaFRIM :
module purge
module load matlab/MCR_R2019b
./magic 10
Exécuter sur Curta/MCIA un code compilé sur diskless :
module purge
module load matlab/MCR_R2020b
./magic 10