Parallel and Distributed Computing with MATLAB The MathWorks, Inc. 1

Similar documents
Parallel and Distributed Computing with MATLAB Gerardo Hernández Manager, Application Engineer

Mit MATLAB auf der Überholspur Methoden zur Beschleunigung von MATLAB Anwendungen

Speeding up MATLAB Applications Sean de Wolski Application Engineer

Optimizing and Accelerating Your MATLAB Code

Scaling MATLAB. for Your Organisation and Beyond. Rory Adams The MathWorks, Inc. 1

Integrate MATLAB Analytics into Enterprise Applications

Parallel Computing with MATLAB

Mit MATLAB auf der Überholspur Methoden zur Beschleunigung von MATLAB Anwendungen

Multicore Computer, GPU 및 Cluster 환경에서의 MATLAB Parallel Computing 기능

Integrate MATLAB Analytics into Enterprise Applications

Data Analytics with MATLAB. Tackling the Challenges of Big Data

Speeding up MATLAB Applications The MathWorks, Inc.

Accelerating System Simulations

Modeling a 4G LTE System in MATLAB

Getting Started with MATLAB Francesca Perino

Big Data con MATLAB. Lucas García The MathWorks, Inc. 1

MATLAB Distributed Computing Server Release Notes

Integrate MATLAB Analytics into Enterprise Applications

Using Parallel Computing Toolbox to accelerate the Video and Image Processing Speed. Develop parallel code interactively

MATLAB. Senior Application Engineer The MathWorks Korea The MathWorks, Inc. 2

Tackling Big Data Using MATLAB

Large Data in MATLAB: A Seismic Data Processing Case Study U. M. Sundar Senior Application Engineer

MATLAB AND PARALLEL COMPUTING

Navigating Big Data with MATLAB

Technical Computing with MATLAB

Working with Large Sets of Images in MATLAB Just Got Easier Avi Nehemiah

Analyzing Fleet Data with MATLAB and Spark

What's New in MATLAB for Engineering Data Analytics?

Scaling up MATLAB Analytics Marta Wilczkowiak, PhD Senior Applications Engineer MathWorks

Daniel D. Warner. May 31, Introduction to Parallel Matlab. Daniel D. Warner. Introduction. Matlab s 5-fold way. Basic Matlab Example

Embarquez votre Intelligence Artificielle (IA) sur CPU, GPU et FPGA

INTRODUCTION TO MATLAB PARALLEL COMPUTING TOOLBOX

Data Analytics with MATLAB

Deep learning in MATLAB From Concept to CUDA Code

MATLAB Based Optimization Techniques and Parallel Computing

2015 The MathWorks, Inc. 1

System Requirements & Platform Availability by Product for R2016b

What s New in MATLAB May 16, 2017

Parallel Computing with MATLAB

MATLAB 에서작업한응용프로그램의공유 : App 에서부터웹서비스까지

Integrating Advanced Analytics with Big Data

High Performance and GPU Computing in MATLAB

What s New MATLAB and Simulink

Parallel Computing with MATLAB on Discovery Cluster

Parallel Computing with MATLAB

Getting Started with Serial and Parallel MATLAB on bwgrid

What s New in MATLAB and Simulink The MathWorks, Inc. 1

MATLAB is a multi-paradigm numerical computing environment fourth-generation programming language. A proprietary programming language developed by

Speeding up Simulink. Murali Yeddanapudi The MathWorks, Inc. 1

Behind Today s Trends The Technologies Driving Change. Paul Smith Director Consulting Services

Parallel Computing with MATLAB

Sharing and Deploying MATLAB Programs Sundar Umamaheshwaran Amit Doshi Application Engineer-Technical Computing

Cloud Computing & Visualization

Accelerate Big Data Insights

Parallel MATLAB at VT

NVIDIA DGX SYSTEMS PURPOSE-BUILT FOR AI

컴퓨터비전의최신기술 : Deep Learning, 3D Vision and Embedded Vision

Pouya Kousha Fall 2018 CSE 5194 Prof. DK Panda

Application Development and Deployment With MATLAB

Accelerating Simulink Optimization, Code Generation & Test Automation Through Parallelization

Parallel Cosegmentation via Submodular Optimization on Anisotropic Diffusion

What s New in MATLAB and Simulink Young Joon Lee Principal Application Engineer

Parallel Computing with Matlab and R

What s New in Computational Finance

개발과정에서의 MATLAB 과 C 의연동 ( 영상처리분야 )

MATLAB Parallel Computing Toolbox Benchmark for an Embarrassingly Parallel Application

Data Analysis with MATLAB. Steve Lantz Senior Research Associate Cornell CAC

Windows Compute Cluster Server 2003 allows MATLAB users to quickly and easily get up and running with distributed computing tools.

GPU ACCELERATED DATABASE MANAGEMENT SYSTEMS

Calcul intensif et Stockage de Masse. CÉCI/CISM HPC training sessions Use of Matlab on the clusters

Lecture x: MATLAB - advanced use cases

Calcul intensif et Stockage de Masse. CÉCI/CISM HPC training sessions

Moving MATLAB Algorithms into Complete Designs with Fixed-Point Simulation and Code Generation

OPERATIONALIZING MACHINE LEARNING USING GPU ACCELERATED, IN-DATABASE ANALYTICS

IBM Data Science Experience White paper. SparkR. Transforming R into a tool for big data analytics

IBM Power AC922 Server

Oracle Big Data Connectors

What s New in MATLAB and Simulink

Using Intel Math Kernel Library with MathWorks* MATLAB* on Intel Xeon Phi Coprocessor System

BIG DATA: Data Analytics with MATLAB Christophe POUILLOT Senior Consultant MathWorks

Accelerating Finite Element Analysis in MATLAB with Parallel Computing

2^48 - keine Angst vor großen Datensätzen in MATLAB

2015 The MathWorks, Inc. 1

Scalable Tools - Part I Introduction to Scalable Tools

Modeling a 4G LTE System in MATLAB

Summer 2009 REU: Introduction to Some Advanced Topics in Computational Mathematics

A Cloud System for Machine Learning Exploiting a Parallel Array DBMS

QLIK INTEGRATION WITH AMAZON REDSHIFT

Deep Learning Frameworks with Spark and GPUs

Accelerate AI with Cisco Computing Solutions

MathWorks Products and Prices North America January 2018

IBM POWER SYSTEMS: YOUR UNFAIR ADVANTAGE

MATLAB*P: Architecture. Ron Choy, Alan Edelman Laboratory for Computer Science MIT

Advanced Software Development with MATLAB

STA141C: Big Data & High Performance Statistical Computing

Audio Signal Processing in MATLAB Youssef Abdelilah Senior Product Manager

MATLAB 7. The Language of Technical Computing KEY FEATURES

Model-Based Design: Design with Simulation in Simulink

MatCL - OpenCL MATLAB Interface

What s New for MATLAB David Willingham

Transcription:

Parallel and Distributed Computing with MATLAB 2018 The MathWorks, Inc. 1

Practical Application of Parallel Computing Why parallel computing? Need faster insight on more complex problems with larger datasets Computing infrastructure is broadly available (multicore desktops, GPUs, clusters) Why parallel computing with MATLAB Leverage computational power of more hardware Accelerate workflows with minimal to no code changes to your original code Focus on your engineering and research, not the computation 2

Steps for Improving Performance First get code working Speed up code with core MATLAB Include compiled languages and additional hardware Webinar: Optimizing and Accelerating Your MATLAB Code 3

Programming Parallel Applications Built-in multithreading Automatically enabled in MATLAB since R2008a Multiple threads in a single MATLAB computation engine Parallel computing using explicit techniques Multiple computation engines controlled by a single session High-level constructs to let you parallelize MATLAB applications Perform MATLAB computations on GPUs 4

Parallel Computing TOOLBOXES BLOCKSETS 5

Agenda Utilizing multiple cores on a desktop computer Scaling up to cluster and cloud resources Tackling data-intensive problems on desktops and clusters Accelerating applications with NVIDIA GPUs Summary and resources 6

Ease of Use Programming Parallel Applications Built in support..., UseParallel, true) Greater Control 7

Parallel-enabled Toolboxes Image Processing Batch Image Processor, Block Processing, GPU-enabled functions Statistics and Machine Learning Resampling Methods, k-means clustering, GPU-enabled functions Neural Networks Deep Learning, Neural Network training and simulation Signal Processing and Communications GPU-enabled FFT filtering, cross correlation, BER simulations Computer Vision Parallel-enabled functions in bag-of-words workflow Optimization Parallel estimation of gradients Other Parallel-enabled Toolboxes 8

Ease of Use Programming Parallel Applications Built in support..., UseParallel, true) Simple programming constructs parfor, batch Greater Control 9

Embarrassingly Parallel: Independent Tasks or Iterations No dependencies or communication between tasks Examples: Monte Carlo simulations Parameter sweeps Same operation on many files Time Time 10

Mechanics of parfor Loops 1 12 23 34 4 55 66 7 88 9 910 10 a = zeros(10, 1) parfor i = 1:10 a(i) = i; end a a(i) = i; a(i) = i; a(i) = i; a(i) = i; 11

Tips for Leveraging PARFOR Consider creating smaller arrays on each worker versus one large array prior to the parfor loop Take advantage of parallel.pool.constant to establish variables on pool workers prior to the loop Encapsulate blocks as functions when needed Understanding parfor 12

Ease of Use Programming Parallel Applications Built in support..., UseParallel, true) Simple programming constructs parfor, batch Full control of parallelization spmd, parfeval Greater Control 13

Agenda Utilizing multiple cores on a desktop computer Scaling up to cluster and cloud resources Tackling data-intensive problems on desktops and clusters Accelerating applications with NVIDIA GPUs Summary and resources 14

Offloading Computations Work TOOLBOXES BLOCKSETS Result Scheduler 15

Offloading Serial Computations job = batch(...); MATLAB Desktop (Client) Work Result 16

Offloading and Scaling Computations job = batch(..., 'Pool', n); MATLAB Desktop (Client) Work Result 17

Migrate to Cluster / Cloud Use MATLAB Distributed Computing Server Change hardware without changing algorithm 18

Use MATLAB Distributed Computing Server 1. Prototype code Desktop Computer Local MATLAB Desktop (Client) MATLAB code Profile (Local) 19

Use MATLAB Distributed Computing Server 1. Prototype code 2. Get access to an enabled cluster Computer Cluster Cluster Scheduler Profile (Cluster) 20

Use MATLAB Distributed Computing Server 1. Prototype code Desktop Computer Computer Cluster Local Cluster 2. Get access to an enabled cluster 3. Switch cluster profile to run on cluster resources MATLAB Desktop (Client) MATLAB code Scheduler Profile (Local) Profile (Cluster) 21

Take Advantage of Cluster Hardware Offload computation: Free up desktop Access better computers Computer Cluster Cluster Scale speed-up: Use more cores Go from hours to minutes Scale memory: MATLAB Desktop (Client) Scheduler Utilize tall arrays and distributed arrays Solve larger problems without re-coding algorithms 22

Scale your applications beyond the desktop Option Parallel Computing Toolbox MATLAB Parallel Cloud MATLAB Distributed Computing Server for Amazon EC2 MATLAB Distributed Computing Server for Custom Cloud MATLAB Distributed Computing Server Description Explicit desktop scaling Single-user, basic scaling to cloud Maximum workers Scale to EC2 with some customization Scale to custom cloud No limit 16 256 No limit No limit Hardware Desktop MathWorks Compute Cloud Amazon EC2 Amazon EC2, Others Any Availability Worldwide United States and Canada United States, Canada and other select countries in Europe Worldwide Scale to clusters Worldwide Learn More: Parallel Computing on the Cloud 23

Agenda Utilizing multiple cores on a desktop computer Scaling up to cluster and cloud resources Tackling data-intensive problems on desktops and clusters Accelerating applications with NVIDIA GPUs Summary and resources 24

Tall and Distributed Data Tall Data Columnar data that does not fit in memory of a desktop or cluster Distributed Data Large matrices using the combined memory of a cluster Machine Memory Common Actions Data manipulation, math, statistics Summary visualizations Machine learning Common Actions Matrix Manipulation Linear Algebra and Signal Processing 25

Tall Arrays New data type in MATLAB R2016b Machine Memory Applicable when: Data is columnar with many rows Overall data size is too big to fit into memory Operations are mathematical/statistical in nature Statistical and machine learning applications Hundreds of functions supported in MATLAB and Statistics and Machine Learning Toolbox Tall Data 26

Execution Environments for Tall Arrays Local disk Shared folders Databases Run on Compute Clusters, or Spark if your data is stored in HDFS, for large scale analysis Process out-of-memory data on your Desktop to explore, analyze, gain insights and to develop analytics Use Parallel Computing Toolbox for increased performance Spark+Hadoop 27

Distributed Arrays Distributed Arrays hold data remotely on workers running on a cluster Manipulate directly from client MATLAB (desktop) 200+ MATLAB functions overloaded for distributed arrays Supported functions for Distributed Arrays 28

Agenda Utilizing multiple cores on a desktop computer Scaling up to cluster and cloud resources Tackling data-intensive problems on desktops and clusters Accelerating applications with NVIDIA GPUs Summary and resources 29

Graphics Processing Units (GPUs) For graphics acceleration and scientific computing Many parallel processors Dedicated high speed memory 30

GPU Requirements Parallel Computing Toolbox requires NVIDIA GPUs www.nvidia.com/object/cuda_gpus.html MATLAB Release MATLAB R2014b and newer releases MATLAB R2014a and earlier releases Required Compute Capability 2.0 or greater 1.3 or greater 31

Ease of Use Programming with GPUs Built in toolbox support Simple programming constructs gpuarray, gather Greater Control 32

Ease of Use Programming with GPUs Built in toolbox support Simple programming constructs gpuarray, gather Advanced programming constructs spmd, arrayfun Interface for experts CUDAKernel, mex Greater Control 33

Speed-up using NVIDIA GPUs Ideal Problems Massively Parallel and/or Vectorized operations Computationally Intensive Algorithm consists of supported functions 300+ GPU-enabled MATLAB functions Additional GPU-enabled Toolboxes Algorithm consists of supported functions Neural Networks Image Processing Communications Signal Processing... Learn more 34

Agenda Utilizing multiple cores on a desktop computer Scaling up to cluster and cloud resources Tackling data-intensive problems on desktops and clusters Accelerating applications with NVIDIA GPUs Summary and resources 35

Summary Easily develop parallel MATLAB applications without being a parallel programming expert Speed up the execution of your MATLAB applications using additional hardware Develop parallel applications on your desktop and easily scale to a cluster when needed 36

Some Other Valuable Resources MATLAB Documentation MATLAB Advanced Software Development Performance and Memory Parallel Computing Toolbox Parallel and GPU Computing Tutorials https://www.mathworks.com/videos/series/parallel-and-gpu-computing-tutorials- 97719.html Parallel Computing on the Cloud with MATLAB http://www.mathworks.com/products/parallel-computing/parallel-computing-on-thecloud/ 37

MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 2018 The MathWorks, Inc. 2018 The MathWorks, Inc. 38