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

Similar documents
From Apps to Web Services: Deploying Your MATLAB Algorithms and Applications Marta Wilczkowiak

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

Integrate MATLAB Analytics into Enterprise Applications

Introduction to MATLAB application deployment

Integrating MATLAB Analytics into Business-Critical Applications Marta Wilczkowiak Senior Applications Engineer MathWorks

Sharing and Deploying MATLAB Applications

Integrate MATLAB Analytics into Enterprise Applications

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

Automated Trading with MATLAB Stuart Kozola Computational Finance

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

Advanced Software Development with MATLAB

MATLAB as a Financial Engineering Development Platform Delivering Financial / Quantitative Models to the Enterprise Eugene McGoldrick

Integrate MATLAB Analytics into Enterprise Applications

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

Deploying MATLAB Applications in Excel, Java, and.net Environments

Application Development and Deployment With MATLAB

Technical Computing with MATLAB

Parallel Computing with MATLAB

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

Tackling Big Data Using MATLAB

Speeding up MATLAB Applications Sean de Wolski Application Engineer

Integrating Advanced Analytics with Big Data

Parallel Computing with MATLAB

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

Fit für die MATLAB EXPO

Simplifier la mise en production d applications MATLAB. Marc Wolff Application Engineer MathWorks 1

Data Analytics with MATLAB. Tackling the Challenges of Big Data

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

Revolution R Open Denver R Users Group 6 Jan 2015

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

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

Learn. Connect. Explore.

Oracle and Tangosol Acquisition Announcement

2015 The MathWorks, Inc. 1

Optimizing and Accelerating Your MATLAB Code

Introduction to MATLAB for Finance

CNA1699BU Running Docker on your Existing Infrastructure with vsphere Integrated Containers Martijn Baecke Patrick Daigle VMworld 2017 Content: Not fo

What s New with the MATLAB and Simulink Product Families. Marta Wilczkowiak & Coorous Mohtadi Application Engineering Group

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

VMworld 2017 Content: Not for publication #CNA1699BE CONFIDENTIAL 2

Cisco Tetration Analytics

Data Analytics with MATLAB

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

VMware Cloud Application Platform

Getting Started with MATLAB Francesca Perino

Speeding up MATLAB Applications The MathWorks, Inc.

RAD Studio XE Datasheet

CONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON. Created by Moritz Wundke

VMware vsan 6.6. Licensing Guide. Revised May 2017

Fast and Easy Persistent Storage for Docker* Containers with Storidge and Intel

Hyper-Convergence De-mystified. Francis O Haire Group Technology Director

Docker and Oracle Everything You Wanted To Know

Merging Enterprise Applications with Docker* Container Technology

Intel Workstation Platforms

Deploy. Your step-by-step guide to successfully deploy an app with FileMaker Platform

Delphi XE. Delphi XE Datasheet

VMWARE VSAN LICENSING GUIDE - MARCH 2018 VMWARE VSAN 6.6. Licensing Guide

NVIDIA DGX SYSTEMS PURPOSE-BUILT FOR AI

High-performance. Enterprise Scale. Global Mobility.

Database Services at CERN with Oracle 10g RAC and ASM on Commodity HW

Er XenApp død og begravet? Allan Bak, edgemo A/S

Automating the Software-Defined Data Center with vcloud Automation Center

Parallel Computing with MATLAB

Cisco Cloud Architecture with Microsoft Cloud Platform Peter Lackey Technical Solutions Architect PSOSPG-1002

Oracle WebLogic Server 12c: Administration I

Using FPGAs as Microservices

Accelerating System Simulations

Achieving Horizontal Scalability. Alain Houf Sales Engineer

Copyright

CUSTOMERS: 1 of 1 7/13/ :34 AM. Reasons why you may be searching for a CVDI solution. an expert. Have an expert call me.

Leveraging Azure Services for a Scalable Windows Remote Desktop Deployment

Cloud Operations Using Microsoft Azure. Nikhil Shampur

Session 7: Configuration Manager

VMware Enterprise Desktop Solutions. Tommy Walker Enterprise Desktop Specialist Engineer Desktop Platform Solutions

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

SQL Diagnostic Manager Management Pack for Microsoft System Center

Market Data Publisher In a High Frequency Trading Set up

Fencing the Cloud. Roger Casals. Senior Director Product Management. Shared vision for the Identity: Fencing the Cloud 1

Enable Modern Work Styles with Microsoft VDI. Jeff Chin Windows Client Solutions Specialist

WebLogic Server- Tips & Tricks for Troubleshooting Performance Issues. By: Abhay Kumar AST Corporation

Lenovo Database Configuration Guide

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

A Generic Distributed Architecture for Business Computations. Application to Financial Risk Analysis.

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

Analytics in the Cloud Mandate or Option?

16th Embarcadero Developers Camp. Opening Session. Jason Vokes. Senior Director Technologies & Marketing International

What s New for MATLAB David Willingham

Implementing Your BYOD Mobility Strategy An IT Checklist and Guide

SUSE at the Point of Service. Joachim Werner Senior Product Manager

Scaling DreamFactory

MarkLogic 8 Overview of Key Features COPYRIGHT 2014 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.

An Overview Based on Task and Edition X

Simplify Client Virtualization

Storage Strategies for vsphere 5.5 users


IBM Bluemix compute capabilities IBM Corporation

IBM Power Systems: Open innovation to put data to work Dexter Henderson Vice President IBM Power Systems

The MathWorks Products and Prices Euro Academic March 2010

EnterpriseLink Benefits

Modeling a 4G LTE System in MATLAB

Transcription:

Scaling up MATLAB Analytics Marta Wilczkowiak, PhD Senior Applications Engineer MathWorks 2013 The MathWorks, Inc. 1

Agenda Giving access to your analytics to more users Handling larger problems 2

When Scalability is a Challenge You have great functionality, yet people do not have access to it You have purchased more computers, yet you can not execute much more functions You hired more people, yet software gets developed at the same scale 3

Examples Increase number of Monte Carlo simulations Share portfolio, risk or trading apps with a few traders Deploy pricing functions into an enterprise pricing platform serving front, middle and back offices Update prices nightly, or intraday, in an enterprise database Add strategies to a trading platform More computational power f(x) More access 4

Multi-tier Architecture Presentation (Client) Logic (Algorithm) Data 5

What We Are Looking at in This Session More access More computational power 6

Enabling Access to MATLAB Algorithms (Deployment) 7

What Is Application Deployment? Sharing MATLAB apps or native files with other MATLAB users Sharing MATLAB programs with people who do not have MATLAB 8

Tools 9

Deployment options Live MATLAB Apps MATLAB Complier Standalone applications Software modules MATLAB Production Server 10

Deployment options Live MATLAB Apps MATLAB Complier Standalone applications Software modules MATLAB Production Server 11

MATLAB Apps MATLAB Apps: Custom interactive applications running in MATLAB Easy to package, install and find Support full MATLAB language Require MATLAB to run 12

Deployment options Live MATLAB Apps MATLAB Complier Standalone applications Software modules MATLAB Production Server 13

What is MATLAB Compiler? Software that let s you to: Package your MATLAB code so that it does not require MATLAB license Encrypt your intellectual property MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE MPS.exe.dll Excel Java COM.NET archive 14

MATLAB Compiler Runtime MATLAB Source Code MATLAB Compiler MATLAB Encrypted Code Execute Single threaded access MATLAB Compiler Runtime (MCR) 15

Typical deployment process for desktop applications 1. Create MATLAB code 2. Package the code 3. Share the installer MATLAB Compiler 4. Install the application and MCR 16

Desktop Applications Potential scalability challenges Distributing software updates to multiple users Installing application in uncontrolled IT setup (admin rights, different OS, etc.) Slow data transfer from a remote location Hardware resources on the client machines inadequate to application demands Distributing MCR updates to multiple users 17

Scaling Up: Demand for Server Analytics Client Less need for processing power and memory Server Simplified code management Optimal access to data and hardware resources Security Challenge: Giving access to MATLAB to multiple requesters (single threaded MCR) 18

Deployment options Live MATLAB Apps MATLAB Complier Standalone applications Software modules MATLAB Production Server 19

What is MATLAB Production Server? Enterprise class framework for running packaged MATLAB programs MPS Archive Component repository Stores deployed components Request Broker & Program Manager.NET Runtime libraries Execute algorithms Server software Manages algorithms & worker pool Lightweight client library Requests execution of algorithms 20

Integrating with IT Systems Web Applications Web Server MATLAB Production Server Portfolio Optimization Excel Desktop Applications Application Server Pricing Risk Analytics Database Server 21

MATLAB Production Server Scalable and reliable way for giving access to MATLAB algorithms Centralised library of algorithms Simple management Simultaneous access to multiple users Ease of access Let MPS manage the worker pool, algorithms and MCRs Update the algorithms automatically Separate the development and execution of application and algorithmic code Execution efficiency Access immediately Execute with optimised hardware and access to the data Use with different clients: web, database & application servers Integrate easily with application software using the lightweight client library Call using native data types 22

Deploying Enterprise Applications 23

Deploying Your Code To a Server Considerations 24

Server Deployment: Main Considerations Will Clients Call the Algorithm Simultaneously? Client What Interfaces the Client Can Use? What Should the Input / Output Be? What are Other Dependencies of the Algorithm? How to Keep the Algorithm Available? What is the Response Time? Data 25

Will Clients Call the Algorithm Simultaneously? Desktop application Web application Database/web/application server f(x) Providing access to multiple MCRs - Using MPS - Using 3 rd party or proprietary solutions (watch MCR start up and development time) 26

What Interfaces the Client Can Use Desktop application Web application Database/web/application server f(x)? What language does the client speak? Bottom line: MATLAB components can be called from any application that has external interfaces Excel.dll Add-In Java.NET COM 27

What Should Be the Input/Output? I f(x) O 28

What Should Be the Input/Output? Example 1 Deploy pricing functions into an enterprise pricing platform Client Client sends simple parameters f(x) MATLAB pulls data from sources 30

What Should Be the Input/Output? Example 2 Add algorithms to a trading platform Client Client pushes all data to MATLAB f(x) 32

What Should Be the Input/Output? Example 3 Update prices nightly, or intraday, in an enterprise database Client Client pushes all data to MATLAB f(x) Bring algorithm to data Examples 33

What Should Be the Input/Output? Summary I f(x) O Main considerations What is needed Data types Is data on the client anyway? Need/want to use of existing enterprise I/O functions Marshalling time 34

What are Other Dependencies of the Algorithm? State/persistent data 0 1 function out = getnextnumber persistent n; if isempty(n) n = 0; end n = n+1; out = n; 2 35

What are Other Dependencies of the Algorithm? function out = getnextnumber persistent n; if isempty(n) n = 0; end n = n+1; out = n; function out = getnextnumber(n) out = n+1; Removing state/persistent data Refactor Store state in Database MAT files In-memory storage Config files Make sure they will be present in the production environment 36

How to Keep the Algorithm Available Imagine f(x) function makeexit exit f(x) Monitor and maintain the worker(s) 37

What is the Response Time 1 min 1min is fast for daily risk report f(x) 1min is slow for interactive pricing If the algorithm is not fast enough for the client Accelerate your code Warn the client Minimize call overhead Reduce data marshalling MCR start-up time Algorithm closer to data 38

Off the Shelf Product Features for Server-Side Deployment MATLAB Compiler +Builders MATLAB Production Server Code locked Logic out of process Reduced MCR start up time Simultaneous access Monitor and maintain the worker(s) : Built in 39

Creating Production Ready MATLAB Algorithms Prototype Algorithm Developer Production Code Software Engineer Internal collaboration MathWorks Consulting Services 40

Using More Computational Power (Parallel Computing) 41

Parallel Computing Tools Address Long computations Task-Parallel Large data problems Data-Parallel Multiple independent iterations parfor i = 1 : n end % do something with i Series of tasks Task 1 Task 2 Task 3 Task 4 11 26 41 12 27 42 13 28 43 14 29 44 15 30 45 16 31 46 17 32 47 17 33 48 19 34 49 20 35 50 21 36 51 22 37 52 42

Parallel Computing Toolbox for the Desktop Desktop Computer Local Speed up parallel applications Take advantage of GPUs Prototype code for your cluster MATLAB Desktop (Client) 43

Scale Up to Clusters and Clouds Desktop Computer Computer Cluster Local Cluster MATLAB Desktop (Client) Scheduler 44

Main Considerations for Scalability Data transfer Resource contention Other overheads 45

Resource Contention Performance IO Hub HT HT HT HT HT HT HT HT Disk Core Core Core Core Network Cache Memory (L3) Cache Memory (L3) Core Core Core Core HT HT HT HT HT HT HT HT Memory 46

Speedup vs. num. Concurrent Processes Performance a = bigmatrix a*a fft(a) sum(a) 47

Speedup vs. num. Concurrent Processes Performance a = bigmatrix a*a fft(a) sum(a) Hyperthreaded Cores 48

What We Have Seen More access More computational power More Data 49

Scaling Up MATLAB Analytics Rapid prototyping of ideas Scalable algorithms - using more computational power - with wide access 50