MATLAB tools for submitting jobs to the SLURM workload manager.
This repository provides tools for submitting MATLAB jobs to the SLURM scheduling
system. The MATLAB function slurmfun
can be used similar to the MATLAB function
cellfun
, i.e. it will apply a user-defined function to all elements of a cell
array and return a cell array of output arguments. Each function call will be
submitted as a separate job to the scheduler. See also help slurmfun
for details.
Up to now slurmfun
has been used and tested in the cluster environments of the
Ernst Strüngmann Institute (ESI) gGmbH for Neuroscience in Cooperation with Max Planck Society
and the Cooperative Brain Imaging Center comprising
- SLURM 17, 20.02, 20.11.9
- MATLAB 2014a up to 2023b
- Debian 8, RHEL 8.1-8.6
The default paths for log files and the SLURM working directory ('slurmWorkingDirectory'
, availableToolboxes
in slurmfun.m
), need to be adjusted for the specific
cluster environment slurmfun
is used in.
Clone this repository
git clone https://github.com/esi-neuroscience/slurmfun.git
and add it to your MATLAB path
addpath /path/to/slurmfun
Consider the function myfunction
that generates a in1
-by-in2
matrix of uniformly
distributed random numbers in the interval (0,1):
function out = myfunction(in1, in2)
out = rand(in1,in2);
To generate 5 matrices in parallel with slurmfun
use, e.g.,
nJobs = 5;
inc1 = num2cell(randi(20, nJobs, 1) + 60);
inc2 = num2cell(randi(20, nJobs, 1) + 60);
[out, jobs] = slurmfun(@myfunction, inc1, inc2, 'partition', 'partitionName', 'mem', '7500M', 'cpu', 1);
A more elaborate example can be found in Examples, for a full list
of options, use help slurmfun
.
To report bugs or ask questions please use our GitHub issue tracker.
This project is actively maintained and (sometimes) updated.