(This documentation should work with MATLAB >= 2019b)
MATLAB Parallel Severs is a toolbox that allows you to launch your script to the SCITAS clusters directly from your local installation of MATLAB. This documentation will guide you through the steps to properly configure the SCITAS clusters as parallel servers in your MATLAB installation.
where INSTALL_DIR is the path where you have installed the Slurm plugin.
In case of the error "Failed to initialize the interactive session" during the "Parpool" test, set the hostname explicitly on the client host:
Query the name server to obtain the name it gives you:
nslookup YOU_IP_ADDRESS ad1.epfl.ch
where MY_PC_NAME is the name obtained at the previous point.
When launching a simulation using MATLAB Parallel Server, you may need to change a SLURM option to fit your needs. Typically, without any action from you, the time limit of the simulation is the default one (15 minutes). To change that, you must create a cluster object inheriting from the cluster configuration, add an additional submission argument, and create the parallel pool of workers:
cluster = parcluster('fidis'); % Create a cluster with the configuration corresponding to the Fidis machine cluster.AdditionalProperties.AdditionalSubmitArgs = '--time 01:00:00'; % Add the option of your choice. Here, we set the time limit to 1h. parpool(cluster) % Start the parallel pool
In this small example, we want to compute the maximum eigenvalue of some random matrices in parallel. To do this, we proceed in three steps:
% Part 1: Create a cluster c using the 'fidis' profile and start the pool p with 28 workers (cores) c = parcluster('fidis'); p = parpool(c, 28); % Part 2: Do the actual computations. Here we use parfor to exploit the parallel execution of a for loop. tic n = 200; A = 500; a = zeros(1,n); parfor i = 1:n a(i) = max(abs(eig(rand(A)))); end toc % Part 3: Shutdown the parallel pool delete(p)
Please, note that using MATLAB Parallel Server is an interactive process, i.e. you need to keep your MATLAB instance open. This can be difficult if your computations need tens of hours to complete. In this case, you may want to consider launching them directly on the SCITAS cluster.