HPC/Applications/matlab
Alternatives
MATLAB is vendor-specific, and comparably expensive licensed software and thus not generally available. Consider using an unencumbered alternative solution.
Octave
If you have existing MATLAB code, try running in using GNU Octave instead of MATLAB for all but the most demanding or vendor-specific tasks:
- To start octave:
octave
- GNU Octave Documentation
- Differences between Octave and MATLAB in the WikiBook MATLAB Programming (slightly out of date).
- Why/when should I prefer MATLAB over Octave? – Discussion at stackoverflow.com.
Python or Perl
For more flexibility, use a general-purpose scripting language.
- Most users may want to look at Python with NumPy, available as module "numpy" on Carbon. See also:
- Users who like a stonger Unix flavor should look at Perl.
NLopt – Nonlinear optimization
For users wishing to solve nonlinear optimization problems, the nlopt module is a fairly general-purpose optimization library with interfaces in C, C++ and Fortran.
Licensing
MATLAB is available on Carbon on request, and is subject to strictly limited license terms. Running MATLAB is restricted to:
- Argonne employees (including consultants and students),
- by one user at a time.
Toolboxes
We have the following toolboxes installed:
- Curve Fitting Toolbox
- Image Processing Toolbox
- Optimization Toolbox
- Parallel Computing Toolbox
- Statistics Toolbox
Running MATLAB
- To get started, load the "matlab" module as described at HPC/Module Setup.
- Then choose how to run the application:
- GUI
matlab
- Command line
- For basic calculations, you could save some startup time by simply using the text interface.
matlab -nojvm
- Does not load the Java VM and toolboxes requiring any java.
or
matlab -nodisplay
- Suppresses X11.
Running the MATLAB compiler
As of 2013, we have available a MATLAB compiler on Carbon. This compiler allows you to create standalone Linux binaries that do not need a MATLAB license token in order to run. It is therefore highly recommended to use this tool to enable your MATLAB scripts to run when you need them, regardless of other users' demands on our MATLAB license.
Note that the compiler is, unfortunatley, rather slow and unwieldy to use and leaves much to be desired. Compilation of a simple "hello world" script takes several minutes.
Documentation
Consult the vendor site for full documentation. Useful starting points:
- http://www.mathworks.com/help/compiler/
- http://www.mathworks.com/help/compiler/standalone-applications.html
- http://www.mathworks.com/help/compiler/compile-a-standalone-application-from-the-command-line.html
Quickstart
- Connect to clogin5 .
- Locate your toplevel file and function, say file myfunc.m.
- Create a target directory, deploydir.
mkdir deploydir
Minimal compiler options
mkdir deploydir mcc -v \ -o myname \ -W main:myfunc \ -T link:exe \ -d deploydir \ myfunc.m
- You must use a separate deploydir, and it must be a directory other than $PWD or "." Attempting to deploy into the current directory leads to an obscure runtime error "Compiled parallel application fails: distcompdeserialize".
Additional options
You can include the following lines, before naming your own .m file:
- To always write a log file upon execution:
-R '-logfile,myfile.log' \
- The compilation is very slow, but may be sped up by removing toolboxes that are not used, and only adding those that are:
-N -p distcomp -p images \
- The toolboxes that can be given for the
-p
option are:
- The toolboxes that can be given for the
$ ls /opt/soft/matlab-R2013a-8/toolbox/ compiler curvefit distcomp images local matlab optim shared stats
Running the executable
cd deploydir ./run_myname.sh $MATLAB_HOME args-for-your-program
The run_myname.sh script will be generated by the compiler. It expects as its first argument a path to a MATLAB runtime. On Carbon, the main MATLAB installation directory can be used, whose path is provided by the matlab module file in the environment variable shown, following local conventions.
Troubleshooting
Access
To run MATLAB on Carbon, you must be a member of the "employees" group. You could still load the "matlab" module if you are not, but it will not enable anything.
- To inspect your current group membership, run:
groups
- The word "employees" must show.
License in use
License checkout failed. License Manager Error -9 This error may occur when: -The hostid of this computer does not match the hostid in the license file. -A Designated Computer installation is in use by another user. If no other user is currently running MATLAB, you may need to activate.
Solution:
- Wait a few minutes or hours.
- For urgent request, to locate and possibly terminate an existing session, Send a support request.