Difference between revisions of "Applications/Matlab"

From HPC
Jump to: navigation , search
m (Application Details)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 
=== Application Details ===
 
=== Application Details ===
 +
* Description: MATLAB  is a numerical computing environment and programming language developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, and implementation of algorithms. A  range of toolboxes (see list below) are available to extend functionality.
 
* Versions: 2016a
 
* Versions: 2016a
 
* Module names: matlab/2016a
 
* Module names: matlab/2016a
 
* License: University of Hull Total Academic Headcount license, available to everyone
 
* License: University of Hull Total Academic Headcount license, available to everyone
 +
* Forum support: https://www.hpc.hull.ac.uk/forum/viewforum.php?f=14
 +
* Further information: https://www.mathworks.com/products/matlab.html
  
=== Toolboxes ===
+
==== Toolboxes ====
 
{| class="wikitable"
 
{| class="wikitable"
 
|  MATLAB
 
|  MATLAB
Line 72: Line 75:
 
| Wavelet Toolbox
 
| Wavelet Toolbox
 
|}
 
|}
 +
 +
== Usage Examples ==
  
 
=== Interactive ===
 
=== Interactive ===
 +
<pre style="background-color: #C8C8C8; color: black; border: 2px solid black; font-family: monospace, sans-serif;">
 +
[username@login01 ~]$ interactive
 +
salloc: Granted job allocation 289663
 +
Job ID 289663 connecting to c170, please wait...
 +
Last login: Thu Jan 26 12:59:11 2017 from 10.254.5.246
 +
[username@c170 ~]$ module add matlab/2016a
 +
[username@c170 ~]$ matlab
 +
</pre>
  
 
+
=== Batch Submission ===
=== Job Submission Script ===
 
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid blue; font-family: monospace, sans-serif;">
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid blue; font-family: monospace, sans-serif;">
 
#!/bin/bash
 
#!/bin/bash
Line 90: Line 102:
 
matlab -nodisplay -nojvm -nodesktop -nosplash -r my_matlab_m_file
 
matlab -nodisplay -nojvm -nodesktop -nosplash -r my_matlab_m_file
 
</pre>
 
</pre>
 
+
This submission script can be found at /path/to/sample/script
 
Matlab  
 
Matlab  
  
 
=== Job Submission ===
 
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid black; font-family: monospace, sans-serif;">
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid black; font-family: monospace, sans-serif;">
 
[username@login01 ~]$ sbatch MATLABtest.job
 
[username@login01 ~]$ sbatch MATLABtest.job
Line 100: Line 110:
 
</pre>
 
</pre>
  
 +
== Parallel Matlab ==
 +
By default Matlab on Viper will run on a single core as mutli-threading conflicts with the schedulers resource management, however there are three ways in which Matlab can utilise multiple processors:
 +
 +
=== Multi-threading ===
 +
Matlab can use multiple threads for certain built in functions for example linear algebra and numerical functions such as fft, \ (mldivide), eig, svd, and sort. These functions automatically execute on multiple computational threads in a single MATLAB session, allowing them to execute faster on multicore-enabled machines. Additionally, many functions in Image Processing Toolbox are multithreaded
  
 
=== Parallel Computing Toolbox ===
 
=== Parallel Computing Toolbox ===
 +
The Parallel Computing Toolbox allows you to open a number of workers (separate Matlab engines) on the local node, up to the number of cores on that node (28 for standard nodes in an exclusive session).
  
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid green; font-family: monospace, sans-serif;">
 
<pre style="background-color: #C8C8C8; color: black; border: 2px solid green; font-family: monospace, sans-serif;">
Line 118: Line 134:
 
           SpmdEnabled: true
 
           SpmdEnabled: true
 
</pre>
 
</pre>
 +
 +
=== Distributed Computing Toolbox ===
 +
The distributed computing toolbox is not currently supported on Viper
 +
 +
== Change Log ==
 +
[2017-01-30] Changed default Matlab launch command in module to matlab -singleCompThread to disable multi-threading

Revision as of 23:22, 27 January 2017

Application Details

  • Description: MATLAB is a numerical computing environment and programming language developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, and implementation of algorithms. A range of toolboxes (see list below) are available to extend functionality.
  • Versions: 2016a
  • Module names: matlab/2016a
  • License: University of Hull Total Academic Headcount license, available to everyone
  • Forum support: https://www.hpc.hull.ac.uk/forum/viewforum.php?f=14
  • Further information: https://www.mathworks.com/products/matlab.html

Toolboxes

MATLAB Filter Design HDL Coder MATLAB Report Generator SimRF
Simulink Financial Instruments Toolbox Model Predictive Control Toolbox Simscape
Aerospace Blockset Financial Toolbox Neural Network Toolbox Simscape Electronics
Bioinformatics Toolbox Fixed-Point Designer Optimization Toolbox Simscape Multibody
Communications System Toolbox Fuzzy Logic Toolbox Parallel Computing Toolbox Simscape Power Systems
Computer Vision System Toolbox Global Optimization Toolbox Partial Differential Equation Toolbox Simulink Coder
Control System Toolbox Image Acquisition Toolbox Phased Array System Toolbox Simulink Control Design
Curve Fitting Toolbox Image Processing Toolbox RF Toolbox Simulink Design Optimization
DSP System Toolbox Instrument Control Toolbox Robotics System Toolbox Stateflow
Database Toolbox LTE System Toolbox Robust Control Toolbox Statistics and Machine Learning Toolbox
Datafeed Toolbox MATLAB Coder Signal Processing Toolbox Symbolic Math Toolbox
Econometrics Toolbox MATLAB Compiler SimBiology System Identification Toolbox
Embedded Coder MATLAB Compiler SDK SimEvents Wavelet Toolbox

Usage Examples

Interactive

[username@login01 ~]$ interactive
salloc: Granted job allocation 289663
Job ID 289663 connecting to c170, please wait...
Last login: Thu Jan 26 12:59:11 2017 from 10.254.5.246
[username@c170 ~]$ module add matlab/2016a
[username@c170 ~]$ matlab

Batch Submission

#!/bin/bash
#SBATCH -J MATLAB
#SBATCH -N 1
#SBATCH -o %N.%j.out
#SBATCH -e %N.%j.err
#SBATCH -p compute
#SBATCH --exclusive
 
module add matlab/2016a
 
matlab -nodisplay -nojvm -nodesktop -nosplash -r my_matlab_m_file

This submission script can be found at /path/to/sample/script Matlab

[username@login01 ~]$ sbatch MATLABtest.job
Submitted batch job 289522

Parallel Matlab

By default Matlab on Viper will run on a single core as mutli-threading conflicts with the schedulers resource management, however there are three ways in which Matlab can utilise multiple processors:

Multi-threading

Matlab can use multiple threads for certain built in functions for example linear algebra and numerical functions such as fft, \ (mldivide), eig, svd, and sort. These functions automatically execute on multiple computational threads in a single MATLAB session, allowing them to execute faster on multicore-enabled machines. Additionally, many functions in Image Processing Toolbox are multithreaded

Parallel Computing Toolbox

The Parallel Computing Toolbox allows you to open a number of workers (separate Matlab engines) on the local node, up to the number of cores on that node (28 for standard nodes in an exclusive session).

>> parpool('local',28)
Starting parallel pool (parpool) using the 'local' profile ... connected to 28 workers.

ans = 

 Pool with properties: 

            Connected: true
           NumWorkers: 28
              Cluster: local
        AttachedFiles: {}
          IdleTimeout: 30 minute(s) (30 minutes remaining)
          SpmdEnabled: true

Distributed Computing Toolbox

The distributed computing toolbox is not currently supported on Viper

Change Log

[2017-01-30] Changed default Matlab launch command in module to matlab -singleCompThread to disable multi-threading