Skoči na vsebino

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