====== Matlab ====== 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í úloha: parpool === 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);