scaling up matlab analytics€¦ · scaling up matlab analytics marta wilczkowiak, phd senior...

Post on 05-Oct-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 © 2013 The MathWorks, Inc.

Scaling up MATLAB Analytics

Marta Wilczkowiak, PhD

Senior Applications Engineer

MathWorks

2

Agenda

Giving access to your analytics to more users

Handling larger problems

3

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

4

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

f(x) More access

More

computational

power

5

Presentation

(Client)

Logic

(Algorithm)

Data

Multi-tier Architecture

6

More access

More

computational power

What We Are Looking at in This Session

7

Enabling Access to MATLAB Algorithms

(Deployment)

8

What Is Application Deployment?

Sharing MATLAB apps or native files with

other MATLAB users

Sharing MATLAB programs with people

who do not have MATLAB

9

Tools

10

Deployment options

Live MATLAB

– Apps

MATLAB Complier

– Standalone applications

– Software modules

MATLAB Production Server

11

Deployment options

Live MATLAB

– Apps

MATLAB Complier

– Standalone applications

– Software modules

MATLAB Production Server

12

MATLAB Apps

MATLAB Apps: Custom interactive

applications running in MATLAB

Easy to package, install and find

Support full MATLAB language

Require MATLAB to run

13

Deployment options

Live MATLAB

– Apps

MATLAB Complier

– Standalone applications

– Software modules

MATLAB Production Server

14

What is MATLAB Compiler?

MATLAB Compiler

MATLAB Builder NE

MATLAB Builder EX

MATLAB Builder JA

.exe .dll .NET COM Java Excel MPS

archive

Software that let’s you to:

Package your MATLAB code so that it does not require MATLAB

license

Encrypt your intellectual property

15

MATLAB Compiler Runtime

MATLAB

Compiler

MATLAB

Source Code

MATLAB

Encrypted Code

MATLAB Compiler

Runtime (MCR)

Execute Single threaded access

16

Typical deployment process for desktop applications

1. Create MATLAB code

MATLAB Compiler

2. Package the code 3. Share the installer

4. Install the

application

and MCR

17

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

18

Scaling Up: Demand for Server Analytics

Less need for processing power and

memory

Simplified code management

Optimal access to data and

hardware resources

Security

Server

Client

Challenge:

Giving access to MATLAB

to multiple requesters

(single threaded MCR)

19

Deployment options

Live MATLAB

– Apps

MATLAB Complier

– Standalone applications

– Software modules

MATLAB Production Server

20

What is MATLAB Production Server?

Request

Broker

&

Program

Manager

MPS

Archive

.NET

Enterprise class framework for running packaged MATLAB programs

Lightweight client library Requests execution of algorithms

Server software Manages algorithms

& worker pool

Runtime libraries Execute algorithms

Component repository Stores deployed components

21

Integrating with IT Systems

Web

Server

Application

Server

Database Server

Pricing

Risk

Analytics

Portfolio

Optimization

MATLAB Production Server

Web

Applications

Desktop

Applications

Excel®

22

MATLAB Production Server Scalable and reliable way for giving access to

MATLAB algorithms

Centralised library of

algorithms

Simultaneous access to multiple users

Execution efficiency

• Access immediately

• Execute with optimised hardware and access to the data

Ease of access

• Use with different clients: web, database & application servers

• Integrate easily with application software using the lightweight client library

• Call using native data types

Simple management

• Let MPS manage the worker pool, algorithms and MCRs

• Update the algorithms automatically

• Separate the development and execution of application and algorithmic code

23

Deploying Enterprise Applications

24

Deploying Your Code To a Server

Considerations

25

Will Clients Call the Algorithm Simultaneously?

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?

Server Deployment: Main Considerations

Client

Data

26

Will Clients Call the Algorithm Simultaneously?

Desktop application Web application Database/web/application server

f(x)

Providing access to multiple MCRs

- Using MPS

- Using 3rd party or proprietary solutions (watch MCR start up and

development time)

27

What Interfaces the Client Can Use

What “language” does the client speak?

Bottom line: MATLAB components can be called from any application that

has external interfaces

.dll .NET COM Java Excel

Add-In

Desktop application Web application Database/web/application server

f(x)

?

28

What Should Be the Input/Output?

f(x) I O

30

What Should Be the Input/Output?

Example 1

Client f(x)

MATLAB pulls data

from sources

Client sends

simple parameters

Deploy pricing functions into an enterprise pricing platform

32

What Should Be the Input/Output?

Example 2

Client f(x)

Client pushes all

data to MATLAB

Add algorithms to a trading platform

33

What Should Be the Input/Output?

Example 3

Bring algorithm to data

Examples

Update prices nightly, or intraday, in an enterprise database

Client f(x)

Client pushes all

data to MATLAB

34

What Should Be the Input/Output?

Summary

f(x) I 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

35

What are Other Dependencies of the Algorithm?

State/persistent data

function out = getNextNumber

persistent n;

if isempty(n)

n = 0;

end

n = n+1;

out = n;

0

1

2

36

What are Other Dependencies of the Algorithm?

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

function out = getNextNumber

persistent n;

if isempty(n)

n = 0;

end

n = n+1;

out = n;

function out = getNextNumber(n)

out = n+1;

37

How to Keep the Algorithm Available

function makeExit

exit

Monitor and maintain the worker(s)

Imagine

f(x)

f(x)

38

What is the Response Time

f(x)

1 min 1min is fast for daily risk report

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

39

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

40

Creating Production Ready MATLAB Algorithms

Prototype

Algorithm Developer

Production Code

Software Engineer

Internal collaboration

MathWorks Consulting Services

41

Using More Computational Power

(Parallel Computing)

42

Parallel Computing Tools Address…

Long computations

– Multiple independent

iterations

– Series of tasks

Large data problems

parfor i = 1 : n

% do something with i

end

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

Task-Parallel Data-Parallel

43

Parallel Computing Toolbox for the Desktop

Speed up parallel applications

Take advantage of GPUs

Prototype code for your cluster

MATLAB

Desktop (Client)

Local

Desktop Computer

44

Scale Up to Clusters and Clouds

MATLAB

Desktop (Client)

Local

Desktop Computer

Cluster

Computer Cluster

Scheduler

45

Main Considerations for Scalability

Data transfer

Resource contention

Other overheads

46

Resource Contention

Memory

HT HT

Core

HT HT

Core

HT HT

Core

HT HT

Core

Cache Memory (L3)

HT HT

Core

HT HT

Core

HT HT

Core

HT HT

Core

Cache Memory (L3)

IO Hub

Disk

Network

Performance

47

Speedup vs. num. Concurrent Processes

a = bigMatrix

a*a

fft(a)

sum(a)

Performance

48

Speedup vs. num. Concurrent Processes

Hyperthreaded

Cores

a = bigMatrix

a*a

fft(a)

sum(a)

Performance

49

More Data

More access

More

computational power

What We Have Seen

50

Scaling Up MATLAB Analytics

Rapid prototyping of ideas

Scalable algorithms

- using more computational power

- with wide access

top related