Technical Note - MATLAB FlexLM Licensing Issues
Summary
You may sometimes find that MATLAB tells you that it has run out of licences, or words to that effect and you may then want to try and see who is using the licences in case there's a chance you can pull rank on them.
The Matlab documentation will tell you to use an utility called
lmstat
, however it may not be obvious how you should do that, especially if it is not on the default PATH, so here are some instructions that apply to the School's machines.
Details
Firstly, be aware that
lmstat
is part of the
FlexLM/FlexNet
licensing
product and that it actually just an invocation of a more general utility
lmutil
,
and you can therefore invoke
"lmstat "
as
"lmutil lmstat"
.
Should you be on a machine not covered here, looking for
lmutil
may be
all you need to do to follow these instructions on that machine.
Secondly, products such as MATLB which use the
FlexLM/FlexNet
licensing
suite tend to install it below their own product's directory structure.
Thirdly,
lmstat/lmutil
needs to be able to access whichever licence file is
controlling the product you are using, in this case MATLAB. The licence
file itself may simply be a pointer to an external licence server, as opposed
to an actual licence, and the location of that licence file may be set in the
environment (
$M_LICENSE_FILE
) or specified directly, however the
principle remains the same.
Fourthly,
FlexLM/FlexNet
licensing, when done over the network, often
uses just one licence for many products so as to ease administration. This
means that if you simply query the licence server you may get more information
than you know what to do with. Fortunately,
lmutil
allows you to specify only
specific features within the licence.
Fifthly, these instructions were written when the current version of MATLAB
was
2010a
, so this version's name appears in the instructions: you may need
to replace that string with whatever version you are using.
Sixthly, throughout the MATLAB product you may see "licence", the noun,
spelt with an "s" as in the verb: this is an American thing.
Seventhly, the output from
lmstat
shows you the usernames on the machine
where that user is running
MATLAB
. The licence server controls usage across
VUW, so the usernames you see may not be ECS/MSOR ones.
Finally, yes, there are other ways to do this, including, adding stuff to your PATH,
setting licence file locations in the environment, grep'ing the output, etc, etc.
somes
MATLAB is installed on the
C:
drive
lmutil
is found as
c:\program files\MATLAB\R2010a\bin\win32\lmutil.exe
the licence file is
c:\program files\MATLAB\R2010a\licenses\network.lic
You'll need to run
lmutil
from within a DOS box, usually initiated by running
CMD.EXE
Within the DOS box, you should type
C:
cd C:\Program Files\MATLAB\R2010a\licenses
..\bin\win32\lmutil.exe lmstat -f matlab -c network.lic
ward
MATLAB is installed on the
B:
drive
lmutil
is found as
B:\Program Files\MATLAB\R2010a\bin\win32\lmutil.exe
The licence file is
B:\Program Files\MATLAB\R2010a\licences\network.lic
You'll need to run
lmutil
from within a DOS box, usually initiated by running
CMD.EXE
Within the DOS box, you should type
B:
cd B:\Program Files\MATLAB\R2010a\licenses
..\bin\win32\lmutil.exe lmstat -f matlab -c network.lic
regent
MATLAB is installed below
/vol/matlab
lmstat
is found as
/vol/matlab/R2010a/etc/lmstat
The
FlexLM/FlexNet
utilities know which licence they need to access by default
You should type
/vol/matlab/R2010a/etc/lmstat -f matlab
debretts
MATLAB is installed below
/vol/matlab
but I could not find a Solaris version of
the
FlexLM/FlexNet
utilities for 2010a, so you'll need to use 2009b
lmstat
is found as
/vol/matlab/R2009b/etc/sol64/lmstat
The licence file is
/vol/matlab/R2010a/licenses/network.lic
You should type
/vol/matlab/R2009b/etc/sol64/lmstat -f matlab -c /vol/matlab/R2010a/licenses/network.lic
Generic command line
Given that now (Nov 2014) we appear to have a "current" pointer to one of the various MATLAB installtions
we maintain you should be able to do the more generic
/vol/matlab/current/etc/glnxa64/lmutil lmstat -f matlab -c /vol/matlab/R2013b/licenses/network.lic