MATLAB
We often get questions about running MATLAB on Trillium. With a few exceptions for compilers and debuggers, SciNet does not purchase licences for commercial software. However, the University of Toronto supplies a MATLAB licence that is available on Trillium to any student, professor, or academic researcher, so you can run MATLAB directly. This page describes that option and the alternatives.
Running MATLAB on Trillium
A MATLAB licence is available on Trillium to any student, professor, or academic researcher, so you do not need to tunnel to an external licence server. Load the module and run MATLAB. To confirm that the licence is being served correctly, you can ask MATLAB to report it:
module load matlab matlab -nojvm -nodisplay -batch license
If a licence number is printed, MATLAB is ready to use. If you get an error instead, the licence is not being served correctly; please contact support@scinet.utoronto.ca.
The general instructions for running MATLAB, including serial and parallel job scripts and the MATLAB Compiler, are on the Alliance MATLAB page.
Not using MATLAB
Users can attempt to run MATLAB code using the open-source program Octave, accessible through the octave module. Though there are some differences between the two programs, Octave has been designed to interpret MATLAB code and can often be used in place of MATLAB. If your MATLAB code does not use some of the more-fancy MATLAB toolboxes, you may be able to get away with using Octave instead. Be sure to test your implementation in Octave thoroughly before committing to this option.
It is worth observing that, while convenient for prototyping and running on a single workstation, there are reasons to avoid using MATLAB for larger HPC/ARC projects. These include the prohibitive license cost for large-scale work, poor performance at scale, and portability issues. If you can switch to a license-free option, such as Python, it may be worth the effort.
Using stand-alone MATLAB executables
Creating a MATLAB stand-alone executable
If MATLAB must be used, you may be able to compile your MATLAB code into a stand-alone executable, and run this on a compute node. The version of MATLAB being used will require a compiler license, and the compilation must be done on a Linux machine (not Trillium).
Note: The compilation of a matlab code produces two files, e.g., compiling myscript.m will produce a file myscript and a file run_myscripts.sh. You will need both files.
Using a MATLAB stand-alone executable on Trillium
Once the compilation is done, the executable and its run script (run_SOMETHING.sh) can be copied to SciNet, and run using the MATLAB Compiler Runtime (MCR), which can be accessed using the MCR module. The MCR used must be the same version of MATLAB as the compiler. If the version of MCR that you need is not listed among the MCR module versions, contact us and we will install the version which you require.
Here is an example script which uses the MCR. Note that the "run_myscript.sh" script is produced by the MATLAB compiler, together with the "myscript" executable (assuming you were working on the myscript.m MATLAB code):
#!/bin/bash #SBATCH --nodes=1 #SBATCH --cpus-per-task=40 #SBATCH --time=1:00:00 #SBATCH --job-name test_matlab #SBATCH --output=matlab_output_%j.txt # DIRECTORY TO RUN - $SLURM_SUBMIT_DIR is the directory from which the job was submitted cd $SLURM_SUBMIT_DIR # load module module load mcr/R2018a # Directory for the MCR to use to write temporary files. Use whatever directory you wish. # We specify a unique directory in case multiple jobs are running simultaneously. mkdir -p $SCRATCH/temp/$SLURM_JOB_ID export MCR_CACHE_ROOT=$SCRATCH/temp/$SLURM_JOB_ID # EXECUTION COMMAND (note that the MATLAB script may require that LD_LIBRARY_PATH be added # to the script arguments). Note that, if the calculations are serial, you must bundle 40 such # calculations together for production runs! ./run_myscript.sh $MATLAB rm -rf $SCRATCH/temp/$SLURM_JOB_ID
Available MATLAB runtime versions
Available version of MATLAB can be found using the command
module spider matlab
The latest version as of November 2026 is matlab/2026a.3.