====== Matlab ====== Simple examples for running Matlab tasks can be found in the ''/home/SOFT/modules/examples/Matlab/'' directory, which you can copy to your own using: cp -r /home/SOFT/modules/examples/Matlab/ ./ In the //single// directory there are two files, the Matlab script "montecarlo_single.m" and the script for //sbatch// "slurm.sh". By typing cd single sbatch slurm.sh will start a program on the queue system on a single core that takes about 20-40s to run (kraken-m1,...-m6 machines are faster on this job). There is a similar example in the "parallel" directory for a job parallelized over 8 cores within a single node. The script for sbatch is: #!/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;" Running a Matlab job across multiple nodes is not possible because the "Matlab Parallel Server" is not purchased. Therefore, you must always keep the option in the startup script #SBATCH -N 1 === Parallel task: parpool === Parallel methods in Matlab programs are initialized with the "parpool" function. In our setup, a program using 8 cores must contain parpool('local', 8); However, automaticall loading of the number of cores allocated by Slurm is possible and recommended for beginers. Slurm stores the value defined by "#SBATCH -n" in the system variable "SLURM_NTASKS", which Matlab can read sz = str2num(getenv('SLURM_NTASKS')); parpool('local',sz);