Upcoming Program

MATLAB & Simulink

Language and Programming

Accelerating and Parallelizing MATLAB Code

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

Techsource Systems is
Mathworks Sole and Authorised Distributor and Training Partner

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


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