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 (skupaj izdanih 200 licenca)
- MATLAB Parallel Server (skupaj izdanih 4000 licenc)
Akademski uporabniki lahko prosto uporabljajo MATLAB na HPC Vegi, komercialni uporabniki pa morajo prinesti svojo licenco. Za več informacij pišite na support@sling.si.
Alternativno: uporaba lastne licence
Podprta je alternativna možnost uporabe lastne licence. Če želite uporabiti lastno licenco, izvozite okoljske spremenljivke za licenčne datoteke.
export MLM_LICENSE_FILE=/pot/do/datoteke/license.dat
MATLAB je na voljo na HPC Vega kot modul. Naložite ga z ukazom:
module load matlab
Načini zagona MATLAB programov
MATLAB iz ukazne vrstice
Najpreprostejši način zagona MATLAB programa je prek ukazne vrstice. Po nalaganju MATLAB modula MATLAB v terminalskem načinu z ukazom:
matlab -nodisplay
Ukaz odpre MATLAB okolje brez grafičnega uporabniškega vmesnika (GUI). Po zagonu se prikaže MATLAB terminal, v katerega lahko neposredno vnašamo MATLAB ukaze. Primer:
>> disp('Hello from MATLAB!')
Hello from MATLAB!
Ukazno vrstico zapremo z ukazom exit.
Zagon MATLAB skript iz ukazne vrstice
Če želite MATLAB skripto zagnati direktno iz ukazne vrstice, uporabite ukaz:
matlab -batch "run('matlabtest.m')"
V kolikor vaša MATLAB skripta vsebuje grafe, ki želite, da se ob zagonu izrišejo, skripto zaženite z ukazom:
matlab -nodesktop -nosplash -r "run('matlabtest.m')"
Primer skripte z grafom lahko prenesete tukaj. Po zagonu zgornjega ukaza, se mora odpreti sledeči graf:

Zagon MATLAB grafičnega vmesnika (GUI)
MATLAB lahko uporabljamo tudi prek grafičnega uporabniškega vmesnika (GUI). Za uporabo GUI mora biti omogočeno posredovanje X11. Najlažji način za preverjanje tega je echo $DISPLAY, če vrednost ni podana, X11 ne deluje pravilno. Da nastavite posredovanje X11 sledite navodilom tukaj.
Grafični vmesnih zaženite z ukazom:
matlab -display Xdisplay
kjer Xdisplay nadomestite z vrednostjo, ki jo vrne echo $DISPLAY (npr. matlab -display localhost:10.0).
Po uspešnem zagonu se odpre MATLAB grafinčni vmesnik, v katerem lahko ukaze izvajamo enako kot na osebnem računalniku.
Zagon MATLAB skripte preko Slurm
Za daljše izračune priporočamo uporabo razporejevalnika opravil Slurm. V tem primeru se MATLAB zažene znotraj Slurm naloge na računskem vozlišču in ne neposredno na prijavnem vozlišču. Za zagon posla preko Slurm pripravimo SBATCH skripto, na primer:
#!/bin/bash
#SBATCH --job-name=matlab-test
#SBATCH --time=00:05:00
#SBATCH --partition=cpu
#SBATCH --nodes=1
#SBATCH --mem=4G
#SBATCH --cpus-per-task=8
module load matlab
matlab -batch "run('matlabtest.m')"
kjer matlabscript predstavlja MATLAB skripto, ki jo želimo zagnati.
Vhodna datoteka, na primer skripta shell ali sbatch, mora imeti končnico .m, izhod bo zapisan znotraj datoteke slurm-<jobid>.log.
Za dodatne informacije o ukazih MATLAB naložite modul iz prijavnega vozlišča, ter preglejte razdelek za pomoč.
matlab -h
Primer Apptainer naloge
Apptainer vsebniki so namenjeni uporabnikom, ki želijo uporabljati lastno MATLAB licenco. Ta pristop omogoča izvajanje MATLAB-a znotraj vsebnika, neodvisno od sistemske namestitve na Vegi.
Primer skripte SBATCH za zagon MATLAB skripte s pomočjo vsebnika:
#!/bin/bash
#SBATCH --job-name=matlab-test
#SBATCH --time=00:05:00
#SBATCH --partition=cpu
#SBATCH --nodes=1
#SBATCH --mem=4G
#SBATCH --cpus-per-task=8
apptainer exec /ceph/hpc/software/containers/singularity/images/matlab-<verzija>.sif matlab -batch matlabscript
Primer prilagajanja (skaliranja) vaše kode MATLAB za vzporedno izvajanje
Če želite izvedeti več o zagonu vzporednih opravil v okolju MATLAB z vašega lokalnega namizja, preberite tukaj.
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 = 8)
(countpernode = 1)
(jobname = matlab-test)
(inputfiles =
("matlabscript.sh" "")
("matlabscript.m" "")
)
(executable = matlabscript.sh)
(outputfiles = ("example.out" ""))
(stdout=example.log)
(join=yes)
(gmlog=log)
(memory=8000)
(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 -batch 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