Accelerating and Parallelizing
MATLAB Code

Learn how to accelerate and parallelize MATLAB code

Complimentary Services: Post training email support & 1-hr consultation session within 1 month after the course completion!

TechSource Systems Pte Ltd

Course
Highlights

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
TechSource Systems Pte Ltd

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.

TechSource Systems Pte Ltd

Course
Prerequisites

MATLAB Fundamentals

TechSource Systems Pte Ltd

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

Partners

TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

TechSource Systems is MathWorks Authorised Reseller and Training Partner

Upcoming Program

  • Please keep me posted on the next schedule
  • Please contact me to arrange customized/ in-house training

Course Outline

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
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

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
TechSource Systems Pte Ltd

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
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

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
TechSource Systems Pte Ltd
TechSource Systems Pte Ltd

GPU Computing

Objective: 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
  • Generating CUDA® MEX files using GPU Coder™
  • Using pre-existing CUDA code
QUICK ENQUIRY