Parallel Computing with MATLAB


MATLAB Fundamentals, or equivalent experience using MATLAB
Day 1 of 2
Improving performance

Objective: Analyze performance of sequential code and get to know strategies for reducing execution time. Several topics introduced here will be explored further in the course.

  • Evaluating performance
  • Distributing code
  • Opening additional MATLAB processes
  • Running parallel for-loops
  • Measuring speedup
  • Using hardware for parallel applications
Parallel for-loops

Objective: Accelerate existing code by efficient parallelization.

  • Requirements of parallel for-loops
  • Parallelization of for-loops
  • Retrieval of intermediate results
  • Vectorization and parallelization
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
Day 2 of 2
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
Analyzing large data out of memory

Objective: Load and analyze multiple datasets even if they do not fit into memory.

  • Reading data from multiple files
  • Partitioning data among multiple MATLAB processes
  • Calculating results across workers
Distributing large data sets

Objective: Split large data sets that do not fit into memory across multiple MATLAB processes and analyze them.

  • Working with the Single Program Multiple Data (SPMD) model
  • Creating and working with distributed arrays
  • Distributing file import
  • Exchanging data between MATLAB processes
GPU Computing

Objective: Execute MATLAB code on your computer’s graphics card (GPU) as another option for reducing execution time of code.

  • Overview of GPU architecture and processing
  • Hardware and software requirements
  • Applications suitable for GPU processing
  • Invoking GPU functions in MATLAB