Accelerating and Parallelizing MATLAB Code

in Language and Programming

This two-day course covers a variety of techniques for making your MATLAB code run faster.  You will identify and remove computational bottle-necks using techniques like preallocation and vectorization. In addition, you will compile MATLAB code into MEX-files using MATLAB Coder. On top of that, you will take advantage of multiple cores on your computer by parallelizing for-loops with Parallel Computing Toolbox, and scale up across multiple computers using MATLAB Distributed Computing Server. Interplay between those concepts will be explored throughout the course. If you are working with long-running simulations, you will benefit from the hands-on demonstrations and exercises in the course. Topics include:

  • Improving perfomance within core MATLAB
  • Generating MEX-files
  • Parallelizing computations
  • Offloading execution
  • Working with clusters
  • GPU computing

 

Course Benefits

Upon the complettion of the course, the participants will be able to write parallel algorithm in MATLAB.


Who Must Attend

Engineers who wish to use multiple system to shorten up the simulation time and to be able to process large data sets

Prerequisites


MATLAB Fundamentals, or equivalent experience using MATLAB

 

Course Outline

Day 1 of 2

Improving Performance
Objective: Analyze code performance and utilize techniques for acceleration within MATLAB.

  • Identifying bottle necks
  • Preallocating arrays
  • Vectorizing operations in various ways
  • Rewriting algorithms

Generating MEX-Files
Objective: Generate compiled code files form MATLAB code for better performance.

  • MATLAB Coder overview and workflow
  • Generating and verifying MEX-files
  • Calling unsupported functions
  • Adjusting settings for MEX-file generation

Parallelizing Computations
Objective: Parallelize code execution to take advantage of multiple cores.

  • Opening additional MATLAB processes
  • Running parallel for-loops
  • Measuring speedup
  • Processing multiple files in parallel

Day 2 of 2

Parallel for-Loops
Objective: Explore parallel for-loops in more detail and apply techniques for converting for-loops to parfor-loops.

  • Requirements of parallel for-loops
  • Parallelizing for-loops
  • Retrieving intermediate results

Offloading Execution
Objective: Offload computations to another MATLAB process in order to be able to use MATLAB for other tasks in the meantime.  This is also a preparation step for working with clusters.

  • Processing in batch
  • Creating batch jobs
  • Retrieving results
  • Using the Job Monitor

Working with Clusters
Objective: Accelerate computations and realize more extensive simulations by utilizing multiple computers.

  • Local and remote clusters
  • Dynamic licensing
  • Cluster discovery and connection
  • File access considerations

GPU Computing
Objectives: Execute MATLAB code on your computer's graphics card (GPU) as another option for speeding up calculations.

  • Overview of GPU architecture and processing
  • Applications suitable for GPU processing
  • Invoking MATLAB functions on the GPU
  • Using pre-existing CUDA code

 

DOWNLOAD REGISTRATION FORM

ONLINE REGISTRATION

 

Course Registration Form


Course Title
Invalid Input

or Key in Your Own Title
Invalid Input

Course Start Date

Invalid Input

Sponsorship (*)
Invalid Input


Contact Person


Salutation(*)
Invalid Input

Name(*)
Invalid Input

Designation/ Department/ Division(*)
Invalid Input

Company(*)
Invalid Input

Billing Address (*)
Invalid Input

Street Address

(*)
Invalid Input

Street Address Line 2

City(*)
Invalid Input

State / Province(*)
Invalid Input

Postal / Zip Code(*)
Invalid Input

Telephone(*)
Invalid Input

Fax
Invalid Input

Email Address (*)
Invalid Input


Participant Details


Participant Salution 1
Invalid Input

Participant Name1
Invalid Input

Designation/ Department/ Division
Invalid Input

Telephone
Invalid Input

Fax
Invalid Input

Email Address
Invalid Input

Dietary Requirement
Invalid Input


Participant Salution 2
Invalid Input

Participant Name2
Invalid Input

Designation/ Department/ Division
Invalid Input

Telephone
Invalid Input

Fax
Invalid Input

Email Address
Invalid Input

Dietary Requirement
Invalid Input


Participant Salution 3
Invalid Input

Participant Name 3
Invalid Input

Designation/ Department/ Division
Invalid Input

Telephone
Invalid Input

Fax
Invalid Input

Email Address
Invalid Input

Dietary Requirement
Invalid Input


Payment Method(*)
Invalid Input

Cheque number
Invalid Input

PO Number
Invalid Input

How did you get to know about this programme?(*)
Invalid Input

Terms and Conditions
Invalid Input

Invalid Input