Jednoduché příklady na spuštění Matlab úloh najdete v adresáři /home/SOFT/modules/examples/Matlab/, který můžete zkopírovat do svého adresáře:
cp -r /home/SOFT/modules/examples/Matlab/ ./
v adresáři single jsou dva soubory, matlabovský skript „montecarlo_single.m“ a skript pro sbatch „slurm.sh“. Zadáním
cd single sbatch slurm.sh
se ve frontovém systému spustí na jednom jádře program, jehož běh trvá cca 20-40s (na této úloze jsou rychlejší stroje kraken-m1,…-m6).
V adresáři „parallel“ je podobný příklad pro úlohu paralelizovanou přes 8 jader v rámci jednoho uzlu. Skript pro sbatch je:
#!/bin/bash #SBATCH -J example_matlab #SBATCH -N 1 #SBATCH -n 8 #SBATCH --time=2:00 #SBATCH -o slurm.%N.%J.%u.out # STDOUT #SBATCH -e slurm.%N.%J.%u.err # STDERR matlab -nodisplay -r "montecarlo_parallel;quit;"
Spuštění Matlab úlohy přes více uzlů není možné, protože není zakoupen „Matlab Parallel Server“. Ve spouštěcím skriptu je proto vždy nutné zachovat volbu
#SBATCH -N 1
Paralelní metody v programech Matlabu jsou inicializovány funkcí „parpool“. Program využívající 8 jader musí v našem nastavení obsahovat
parpool('local', 8);
Lze ale doporučit automatické načtení počtu Slurmem alokovaných jader. Slurm totiž hodnotu definovanou „#SBATCH -n“ ukládá do systémové proměnné „SLURM_NTASKS“, kterou Matlab umí načíst
sz = str2num(getenv('SLURM_NTASKS')); parpool('local',sz);