- Improving performance within core MATLAB
- Generating MEX-files
- Parallelizing computations
- Offloading execution
- Working with clusters
- GPU computing
Day 1 of 2
Objective: Analyze code performance and utilize techniques for acceleration within MATLAB.
- Identifying bottle necks
- Preallocating arrays
- Vectorizing operations in various ways
- Rewriting algorithms
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
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
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
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
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