IMB > cellule > Calcul et Développement

Matlab Compiler sur PlaFRIM3/diskless IMB/Curta/MCIA

Utiliser "matlab compiler" sur diskless ou PlaFRIM3 pour exécuter sur Curta

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 :

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