Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Solutions Academia Support User Community Company
spacer spacer spacer spacer spacer spacer

 

Training - Courses

DC01: Parallel Computing with MATLAB

Parallel Computing with MATLAB is a two-day course introducing tools and techniques for distributing code and writing parallel algorithms in MATLAB. The course shows how to use the Parallel Computing Toolbox software to increase both the speed and the scale of existing code. Attendees who are working with long-running simulations, or large data sets, will benefit from the hands-on demonstrations and exercises in the course. Topics include:

  • Working with a MATLAB pool
  • Speeding up computations
  • Task-parallel programming
  • Working with large data sets
  • Data-parallel programming
  • Increasing scale with multiple systems
  • Installation and troubleshooting (optional)
  • Schedulers (optional)
VIEW SCHEDULE and Register SHARE with Manager/Colleague
 
 Detailed course outline

 

Day 1 of 2
Introduction

Objectives

  • Obtain a quick overview of The MathWorks and MATLAB
  • Discuss course set-up, materials, and logistics
  • Provide a "big picture" view of the course ahead
Working with a MATLAB Pool

Objective: This section introduces a parallel approach to running MATLAB code through the use of multiple MATLAB sessions. Interactive techniques for prototyping in a parallel environment are highlighted. The concepts in this section also introduce several ideas explored throughout the course.

  • Evaluating performance
  • Distributing code
  • Additional MATLAB sessions
  • Parallel for-loops
  • Evaluating speedup
  • Hardware utilization
  • Running in batch
Speeding up Computations

Objective: This section outlines the key steps for running parallel computations in a batch environment. The emphasis is on interacting with the various Parallel Computing Toolbox objects to create and run jobs that run in batch.

  • Terminology
  • Schedulers
  • User configurations
  • Object hierarchy
  • Creating jobs
  • Evaluating performance
Task-Parallel Programming

Objective: This section identifies important considerations for programming task-parallel jobs including decomposing a problem and partitioning input. Through use of a hands-on example, it also explores various techniques typically employed to achieve speedup.

  • Decomposing parallel problems
  • Reading from files in parallel
  • Partitioning input
  • Aggregating function calls
  • Memory-mapped files
  • Considerations for parfor-loops
  • Task-parallel and data-parallel applications
Day 2 of 2 
Working with Large Data Sets

Objective: This section explores working with arrays in a parallel environment, with an emphasis on parallel algorithms. Spitting large datasets across multiple instances of MATLAB, as well as simultaneously performing the same operation on the various portions, will be key themes. This chapter concludes by running prototyped code in a batch parallel job.

  • Parallel terminology
  • Types of arrays
  • Composite arrays
  • Distributed arrays
  • Creating distributed arrays
  • Using distributed arrays
  • Indexing into distributed arrays
  • Running in batch
Data-Parallel Programming

Objective: This section explores the important programming considerations for parallel jobs. In addition, this section introduces using the communication features in parallel jobs for creating special architectures to solve specific types of parallel problems.

  • Message Passing Interface (MPI)
  • Sending/receiving data
  • Collective communication
  • Global operations
  • Parallel models
  • Deadlocks
  • Synchronization
  • Parallel topology
  • Systolic architectures
Increasing Scale with Multiple Systems

Objectives: This section demonstrates tools for harnessing the power of multiple systems on a network for running code. Highlighted in the chapter are techniques for working with a heterogeneous mix of systems, as well as special features available in a full cluster of system.

  • System components
  • Accessing other schedulers
  • Schedulers
  • Dynamic licensing
  • File and path dependencies
  • Job and task states
  • Callback functions
  • Dynamically distributed applications
  • Development/debug workflow
  • Performance concerns
(Optional) Installation and Troubleshooting

Objectives: This section is targeted towards system administrators and those responsible for installing and maintaining a cluster. Provided in this section is a walk through of product setup, as well as testing and troubleshooting techniques.

  • Installation considerations and options
  • Installing/starting the MDCE service
  • Starting the Job Manager
  • Starting workers
  • System shut down
  • Additional setup options
  • MDCE defaults
  • User configurations
  • Testing and troubleshooting
(Optional) Schedulers

Objective: This section covers the use of various scheduler products as part of a distributed computing environment. Scheduler benefits and tradeoffs, in addition to steps for integration, are key components.

  • Scheduler overview
  • Third-party schedulers
  • User configurations
  • The Submit function
  • The Decode function
  • Submitting jobs

 


Prerequisites

MATLAB Fundamentals (ML01), or equivalent experience using MATLAB

Class Times:

Please Note: A 1 hour test session will be scheduled the day before the official start of class. This test session will cover viewing and audio troubleshooting as well as software installation. It is highly recommended that you attend this session to ensure a successful start to the class.

Course Length - 4 half-days

Price - $1,300.00

Request training
E-mail this page
Print this page

2009 Training Course Brochure

Exciting new courses and training options available now.

Latin and South American Training Classes