MATLAB

From FarmShare

(Difference between revisions)
Jump to: navigation, search
Line 46: Line 46:
[[Matlab-parallel]]
[[Matlab-parallel]]
-
 
-
 
-
== example single matlab file run via qsub  ==
 
-
 
-
Here's our helloworld.m:
 
-
<source lang="m">disp('Hello World');
 
-
</source>
 
-
Here's a command to run that non-interactively:
 
-
 
-
  matlab -nodesktop < helloworld.m
 
-
 
-
We want to run this same command via the job scheduling system. Let's write a job script (save this as matlab_example.script)
 
-
 
-
<source lang="sh">
 
-
#!/bin/bash
 
-
 
-
#$ -N matlab_example
 
-
#$ -m bes
 
-
#$ -M chekh@stanford.edu
 
-
 
-
module load matlab
 
-
matlab -nodesktop < /farmshare/software/examples/matlab/helloworld.m
 
-
</source>
 
-
 
-
Submit the script:
 
-
 
-
  qsub matlab_example.script
 
-
 
-
Look at the job status:
 
-
 
-
  qstat
 
-
 
-
You should get output file like matlab_example.oXXXXX
 
-
<source lang="sh">Warning: No display specified.  You will not be able to display graphics on the screen.
 
-
Warning: No window system found.  Java option 'MWT' ignored
 
-
 
-
                            < M A T L A B (R) >
 
-
                  Copyright 1984-2011 The MathWorks, Inc.
 
-
                    R2011b (7.13.0.564) 64-bit (glnxa64)
 
-
                              August 13, 2011
 
-
 
-
 
-
To get started, type one of these: helpwin, helpdesk, or demo.
 
-
For product information, visit www.mathworks.com.
 
-
 
-
>> Hello World
 
-
</source>
 
-
 
-
== example second matlab file run via qsub  ==
 
-
 
-
Now we want to make sure we avoid AFS.
 
-
 
-
Here's our helloworld.m:
 
-
<source lang="m">disp('Hello World');
 
-
</source>
 
-
Here's a command to run that non-interactively:
 
-
 
-
  matlab -nodesktop < helloworld.m
 
-
 
-
We want to run this same command via the job scheduling system. Let's write a job script.
 
-
<source lang="sh">
 
-
#!/bin/bash
 
-
 
-
#$ -N matlab_example
 
-
#$ -m bes
 
-
#$ -M chekh@stanford.edu
 
-
 
-
module load matlab
 
-
matlab -nodesktop < /farmshare/software/examples/matlab/helloworld.m
 
-
</source>
 
-
 
-
Submit the script:
 
-
 
-
  cd /farmshare/user_data/$USER
 
-
  qsub -cwd matlab_example.script
 
-
 
-
Look at the job status:
 
-
 
-
  qstat
 
-
 
-
You should get output file like matlab_example.oXXXXX in your current directory
 
-
<source lang="sh">Warning: No display specified.  You will not be able to display graphics on the screen.
 
-
Warning: No window system found.  Java option 'MWT' ignored
 
-
 
-
                            < M A T L A B (R) >
 
-
                  Copyright 1984-2011 The MathWorks, Inc.
 
-
                    R2011b (7.13.0.564) 64-bit (glnxa64)
 
-
                              August 13, 2011
 
-
 
-
 
-
To get started, type one of these: helpwin, helpdesk, or demo.
 
-
For product information, visit www.mathworks.com.
 
-
 
-
>> Hello World
 
-
</source>
 
-
 
-
=PCT=
 
-
We have the Parallel Computing Toolbox, you can use that to parallelize your job across multiple cores in a single machine.
 
-
 
-
Here's how to write a job using MDCS: http://docs.uabgrid.uab.edu/wiki/MatLab_CLI#Parallel_MATLAB
 
-
 
-
You can use the "maxNumCompThreads" command (deprecated) to see how many parallel threads you can run. I get "24" on barley, or "8" on corn.
 
-
 
-
== simple PCT run  on corn ==
 
-
 
-
<source lang="sh">matlab -nodesktop -r 'maxNumCompThreads'
 
-
 
-
>> matlabpool ( 'open', 'local', 8)
 
-
Starting matlabpool using the 'local' configuration ... connected to 8 labs.
 
-
>>
 
-
>> matlabpool size
 
-
 
-
ans =
 
-
 
-
    8
 
-
 
-
>> feature('numCores')
 
-
 
-
ans =
 
-
 
-
    8
 
-
 
-
 
-
Then use 'parfor' instead of 'for'.
 
-
</source>
 
-
matlabpool of size 0 and size 1 are effectively the same, except the latter uses a PCT toolbox license.
 
-
 
-
Here are some training slides and example code that I copied from http://www.osc.edu/~samsi/sc11edu/
 
-
 
-
*http://stanford.edu/~chekh/matlab.tar
 
-
 
-
 
-
== matlab with matlabpools on the barley ==
 
-
 
-
A good way to speed up your matlab code on barley is to submit your matlab job with the shm parallel environment.  The parallel environment is specified with -pe shm 4 below.  The number you specify after shm will be the number of cores allocated to your job (all from the same host).  In this case we are asking for 4 cores, which then become workers in a matlab pool.
 
-
 
-
There is a problem that frequently occurs with matlab if you run many jobs which all use matlab pools.  Matlab is naive and does not handle having multiple instances running at the same time.  To allow many matlabpools to be run simulataneously, use the following code to setup your pool.  You may substitute any number between 1 and 12 for the number of cores (12 being the max matlab will let us use with current license).
 
-
 
-
 
-
<source lang="m">
 
-
#!/bin/bash
 
-
 
-
#$ -N matlabfft
 
-
#$ -S /bin/bash
 
-
#$ -pe shm 4
 
-
#$ -l mem_free=500M
 
-
#$ -cwd
 
-
 
-
hostname
 
-
 
-
echo ""
 
-
echo ""
 
-
echo ""
 
-
 
-
module load matlab
 
-
 
-
matlab -nodesktop <<EOF
 
-
cluster = parcluster('local')
 
-
tmpdirforpool = tempname
 
-
mkdir(tmpdirforpool)
 
-
cluster.JobStorageLocation = tmpdirforpool
 
-
 
-
msg = sprintf('setting matlabpool to %s', getenv('NSLOTS'))
 
-
cluster.NumWorkers = str2num(getenv('NSLOTS'))
 
-
 
-
matlabpool(cluster)
 
-
 
-
cluster
 
-
 
-
a = ones(1000,1000)
 
-
 
-
disp('begin running parfor')
 
-
parfor i = 1:10000
 
-
  b=ones./a
 
-
end
 
-
 
-
disp('done running parfor')
 
-
 
-
matlabpool close
 
-
EOF
 
-
</source>
 
-
 
-
 
-
 
-
= tomlab =
 
-
We have a TOMLAB license.  To start it up:
 
-
# launch matlab r2013a
 
-
# cd to /farmshare/software/non-free/MATLAB-R2013a/tomlab
 
-
# startup
 
-
 
-
 
-
example session:
 
-
 
-
<source lang="m">
 
-
$ module load matlab
 
-
$ matlab -nodesktop
 
-
Warning: No display specified.  You will not be able to display graphics on the screen.
 
-
Warning: No window system found.  Java option 'MWT' ignored.
 
-
 
-
                                                < M A T L A B (R) >
 
-
                                      Copyright 1984-2013 The MathWorks, Inc.
 
-
                                        R2013a (8.1.0.604) 64-bit (glnxa64)
 
-
                                                February 15, 2013
 
-
 
-
No window system found.  Java option 'MWT' ignored.
 
-
 
-
To get started, type one of these: helpwin, helpdesk, or demo.
 
-
For product information, visit www.mathworks.com.
 
-
 
-
>> cd /farmshare/software/non-free/MATLAB-R2013a/tomlab
 
-
>> startup
 
-
The TOMLAB v7.9 directory is /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab
 
-
Found the base path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/base
 
-
Found the cgo path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/cgo
 
-
Found the testprob path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/testprob
 
-
Found the examples path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/examples
 
-
Found the optim path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/optim
 
-
 
-
Warning - optimization toolbox drop-in replacements
 
-
Remove tomlab\optim from path to disable
 
-
 
-
Found the mex path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/mex
 
-
Found the splines path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/splines
 
-
Found the quickguide path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/quickguide
 
-
Found the MAD path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/mad
 
-
Found the lib path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/lib
 
-
Found the usersguide path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/usersguide
 
-
Found the ampl path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/ampl
 
-
Found the common path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/common
 
-
Found the finance path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/finance
 
-
Found the modellib path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/modellib
 
-
MAD successfully installed
 
-
Found the PROPT path as /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/propt
 
-
Found the TOMSYM path as /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/tomsym
 
-
Found the modellib path as  /srv/zfs01/software/non-free/MATLAB-R2013a/tomlab/modellib
 
-
 
-
Run tomlablic to display license information
 
-
Done with setting TOMLAB paths
 
-
>> cd quickguide
 
-
>> nllsQG 
 
-
===== * * * =================================================================== * * *
 
-
TOMLAB - Stanford University Ac. department  602044. Valid to 2100-01-01
 
-
=====================================================================================
 
-
Problem: ---  1: Gisela                        f_k    103.648860373704110316
 
-
                                              f(x_0)    103.652176276833472457
 
-
 
-
Solver: clsSolve.  EXIT=0.  INFORM=1.
 
-
Fletcher-Xu Hybrid Method. Modified Gauss-Newton - BFGS
 
-
Optimal solution found   
 
-
Iteration points are close
 
-
 
-
ResEv  126 JacEv  118 Iter  11
 
-
CPU time: 0.480000 sec. Elapsed time: 0.932415 sec.
 
-
>>
 
-
 
-
</source>
 
-
 
-
 
-
Search the farmshare-discuss archives for posts about&nbsp;[https://mailman.stanford.edu/mailman/swish?query=Matlab&submit=Search+farmshare-discuss+%21&listname=farmshare-discuss&metaname=swishdefault&sort=unixdate Matlab].
 

Revision as of 10:40, 28 November 2013

getting list of available matlab versions

You can run module spider matlab to get a list of available matlab versions

$ module spider matlab

  --------------------------------------------------------------------------------------------------------------------
  matlab:
  --------------------------------------------------------------------------------------------------------------------
    Description:
      MATLAB and toolboxes

     Versions:
        matlab/r2012b
        matlab/r2013a

  --------------------------------------------------------------------------------------------------------------------
  To find detailed information about matlab please enter the full name.
  For example:

     $ module spider matlab/r2013a
  --------------------------------------------------------------------------------------------------------------------


first steps

Per FarmShare software try something like:

module avail
module load matlab

If you're running MATLAB for the first time, it'll try to write some stuff into $HOME/.matlab so make sure you have your AFS tokens or else MATLAB will crash with an undecipherable error message.

As of 9/22/2013 this works on the corn.stanford.edu cluster but NOT on the myth.stanford.edu cluster.

interactive MATLAB

Matlab-interactive

Matlab-parallel

Personal tools
Toolbox
LANGUAGES