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 Parallel 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 performance within core MATLAB

  • Generating MEX-files

  • Parallelizing computations

  • Offloading execution

  • Working with clusters

  • GPU computing

xilinx ATP 黑.png

Techsource Systems is
Mathworks Sole and Authorised Distributor and Training Partner

Course Benefits

Upon the completion of the course, the participants will be able to

  • Profile code to identify bottlenecks

  • Distribute independent loop iterations across multiple MATLAB processes

  • Submit parallel code to a cluster environment

  • Utilize GPU for computations

Who Should Attend

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

Course Prerequisite

MATLAB Fundamentals. 

Course Outline

Day 1 of 2

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

  • Identifying bottlenecks

  • Preallocating arrays

  • Vectorizing operations in various ways

  • Rewriting algorithms


Generating MEX-Files
Objective: : Generate compiled code files from 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