Matlab
Introducció
En aquest exemple, explorarem com enviar a Multivac un programa en Matlab per a calcular una funció objectiu senzilla en MATLAB.
Execució de matlab per línia de comandes
Hem d’executar:
/usr/local/programari/matlab2024b/bin/matlab -nodisplay -nojvm
S’ha de tenir una mica de paciència ja que tarda un xic.
Codi d’exemple
Suposem que volem minimitzar la següent funció objectiu:
Crearem un arxiu per exemple anomenat test_matlab.m per a calcular el valor de la funció objectiu per a un valor específic de x:
% Definim la funció objectiu
f = @(x) x^2 + 3*x + 2;
% Definim un valor específic de x
x_val = 5;
% Calculem el valor de la funció objectiu per a x_val
resultat = f(x_val);
% Mostrem el resultat
fprintf('El valor de la funció objectiu per a x = %d és %f\n', x_val, resultat);
Aquest codi defineix la funció objectiu, assigna un valor específic a x (en aquest cas, 5), i calcula el resultat de la funció objectiu per a aquest valor de x.
Execució
Crearem un document amb els parametres de conficuració, per exemple: test_matlab.slurm` que conté la configuració d’execució per a aquest script de matlab.
VERSION=1.3
JOB_NAME=matlab_example
NAME_OUTPUT=out
PARTITION=all
N_TASKS=1
CPUS_PER_TASK=1
MAIL_TYPE=END,FAIL
MAIL_USER=nom.usuari@upc.edu
MEMORY=1G
BEGIN=now
TIME_LIMIT=00:05:00
LOG_OUTPUT=log
FORCED_NODES=
EXCLUDED_NODES=
ROUTE=~/
COMMANDS=(
"/usr/local/programari/matlab2024b/bin/matlab -nodisplay -r \"run('$ROUTE/test_matlab.m'); exit;\" "
)
Aquest script el llançarem des de iocex usant la següent comanda:
multivac test_matlab.slurm
El resultat del nostre programa un cop finalitzada l’execució serà visible al mateix directori a on hem fet l’execució.