Distributed and Parallel Computing with MATLAB

Course Highlights
This 2-day course introduces tools and techniques for distributing code and writing parallel algorithms in MATLAB. The course shows how to use Distributed Computing Toolbox 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:

  • Distributed jobs
  • Distributed programming considerations
  • Prototyping parallel jobs
  • Parallel programming considerations
  • MATLAB Distributed Computing Engine
  • Installation and troubleshooting (optional)
  • Schedulers (optional)

Prerequisites
Participants who have attended our 'MATLABL Fundamentals & Programming Techniques', or equivalent experience using MATLAB

Course Outline

Day 1
Introduction

  • 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

Overview
This section introduces a distributed approach to running MATLAB code through the use of multiple MATLAB sessions. Interactive techniques for prototyping in a distributed 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
Distributed Jobs
This section outlines the key steps for running a distributed job in a batch environment. The emphasis is on interacting with the various Distributed Computing Toolbox objects to create and run distributed jobs that run in batch.
  • Distributed terminology
  • Schedulers
  • User configurations
  • Object hierarchy
  • Creating distributed jobs
  • Distributed performance
Distributed Programming Considerations
This section identifies important considerations for programming distributed jobs including error handling and debugging in batch environments. The section also introduces techniques for working with Simulink models.
  • Error handling
  • Troubleshooting errors
  • Parameter sweeps
  • Working with Simulink models
  • Working with RSim executables
  • Optimal number of tasks

Day 2
Prototyping Parallel Jobs
This section revisits an interactive environment for prototyping, but 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
  • Distributed arrays
  • Creating distributed arrays
  • Using distributed arrays
  • Indexing into distributed arrays
  • Transferring data
  • Running in batch

Parallel Programming Considerations
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
  • Load balancing
  • Parallel topology
  • Systolic architectures

MATLAB Distributed Computing Engine
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

Installation and Troubleshooting
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

Schedulers
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
Date*:
Please kindly check with our Training Consultants for details
Venue:
  Activemedia Innovation
Time:
  10.00am - 5.30pm (2 days, 15 hrs)
Course Fee:
  Kindly contact our Training Consultants for details.
Enquiries:
6742 8173 enquiry@activemedia.com.sg