Navodila za uporabo programske opreme Matlab
Matlab je programska platforma, za analizo in načrtovanje sistemov, primarno za numerično računalništvo. Podpira matrične manipulacije, risanje podatkov, izvajanje algoritmov, razvoj uporabniških vmesnikov itd. Programi, napisani v Matlab, lahko uporabijo knjižnice, ki so napisane v C, C++, Java in Fortran. Razvit s strani MathWorks, preberite več
Licenca
Matlab je licenčna programska oprema, HPC Vega ponuja licenco Standard Concurrent
, ki naj bi jo hkrati uporabljalo več uporabnikov.
- MATLAB Distrib Comp Engine (skupaj je izdanih 400 licenc)
- MATLAB (skupaj izdana 1 licenca)
- MATLAB Distrib Computing Toolbox (skupaj izdana 1 licenca)
Več o sočasni licenci preberite na povezavi.
Za uporabo Matlaba na HPC Vega morajo uporabniki prinesti lastno licenco. Za več informacij pišite na support@sling.si.
Namestitev
Izvozite okoljske spremenljivke za licenčne datoteke
export MLM_LICENSE_FILE=/pot/do/datoteke/license.dat
export MLM_LICENSE_FILE=27000@server1,27000@server2,27000@server3
Matlab, zadnja verzija R2022a, je na voljo na HPC Vega kot modul.
module load matlab
Uporabniški vmesniki Matlab
Za grafični uporabniški vmesnik (GUI) mora biti na strani odjemalca omogočeno posredovanje X11, sicer se bo začela interaktivna seja prek ukazne vrstice (CLI).
Najlažji način za preverjanje tega je echo $DISPLAY
, če vrednost ni podana, X11 ne deluje pravilno.
Grafični uporabniški vmesnik (GUI)
matlab -display Xdisplay
Vmesnik ukazne vrstice (CLI)
matlab -nodisplay
Za dodatne informacije o ukazih Matlab naložite modul iz prijavnega vozlišča, ter preglejte razdelek za pomoč.
matlab -h
Primer naloge Slurm
Primer prikazuje nalogo, ki se bo izvajala na dveh vozliščih in 12 jedrih. Naloga zahteva 2 GB RAM-a na jedro in se bo izvajala 5 minut, na particiji cpu
.
Vsebina vhodne datoteke matlabtest.m
:
function helloworld
disp('Hello World!')
end
Vsebina skripte SBATCH:
#!/bin/bash
#SBATCH --job-name=matlab-test
#SBATCH --time=00:05:00
#SBATCH --partition=cpu
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=12
module load matlab/matlab-R2022a
matlab -nodisplay -r matlabscript
Vhodna datoteka, na primer skripta shell ali sbatch, mora imeti končnico .m
, izhod bo zapisan znotraj datoteke slurm-<jobid>.log
.
Primer pošiljanja z ARC
Naprej boste potrebovali datoteko .xrsl
, v kateri navedete potrebne računske vire za zagon naloge. Spodnji primer prav tako vsebuje dve vhodni datoteki.
&
(count = 12)
(countpernode = 2)
(jobname = matlab-test)
(inputfiles =
("matlabscript.sh" "")
("matlabscript.m" "")
)
(executable = matlabscript.sh)
(outputfiles = ("example.out" ""))
(stdout=example.log)
(join=yes)
(gmlog=log)
(memory=2000)
(walltime="5 minutes")
Primer matlabscript.sh
:
#!/bin/bash
#Priprava okolja
. /ceph/hpc/software/cvmfs_env.sh
#Nalaganje modula
module --ignore-cache load matlab
#Zagon skripte
matlab -nodisplay -r matlabscript
Za dodatne primere, npr. matlabscript.m
, preverite uradno dokumentacijo.
Dokumentacija
- Uporabniška dokumentacija Matlab: https://www.mathworks.com/help/matlab/
- Osnovne fukncije Matlab: https://www.mathworks.com/content/dam/mathworks/fact-sheet/matlab-basic-functions-reference.pdf
- Primeri uporabe Matlab: https://www.mathworks.com/help/examples.html