Origins, Evolution, and Future Directions of MATLAB Loren Shure 2015 The MathWorks, Inc. 1
Agenda Origins Peaks 5 Evolution 0-5 Tomorrow 2 0 y -2-3 -2-1 x 0 1 2 3 2
Computational Finance Workflow Access Files Research and Quantify Data Analysis & Visualization Share Reporting Databases Financial Modeling Applications Datafeeds Application Development Production Automate 3
MATLAB The Financial Development Platform Access Research and Quantify Share Files Files Databases Datafeeds Data Analysis and Visualization Data Financial Analysis Modeling & Visualization Application Development Reporting Reporting Applications Production Databases Financial Modeling Applications Trading Toolbox Spreadsheet Link EX Database Datafeeds Datafeed Financial Instruments Econometrics Financial Statistics Application Development Optimization MATLAB Report Generator Builder EX Builder NE Builder JA Production Compiler Production Server Parallel Computing MATLAB Distributed Computing Server Automate 4
Origins of MATLAB 5
1965 Birth of L-Shaped Membrane Origin of MathWorks Corporate Logo Cleve Moler s Stanford Ph.D. Thesis Finite Difference Methods for Eigenvalues of Laplace s Operator Blog post 6
1965 Birth of L-Shaped Membrane Evolution of MathWorks Corporate Logo vibes Vibrating L-shaped membrane 1984 1987 1992 1994 1997 7
1977 MATLAB Created Cleve s Work in Computational Mathematics 1967 1971 1976 1979 1977 Idea formed: Matrix Laboratory FORTAN Program Matrix as a Data Type 8
1981 MATLAB 0.0 MATLAB Command Line Program Debuts as a Teaching Tool 9
1979 MATLAB 0.0 MATLAB Command Line Debuts as a Teaching Tool Stanford: 1979-80 Winter Quarter CS237 - Numerical Analysis Math & CS Students Not impressed Engineering Students Love MATLAB Interactive text-based interpreter No need to compile! 10
Evolution of MATLAB Peaks 5 0-5 2 0 y -2-3 -2-1 x 0 1 2 3 11
1983-1984 Jack Little s Vision MathWorks Founded to Commercialize MATLAB M-file scripts and functions Toolboxes MATLAB becomes a language for Technical Computing 12
1987 Loren Shure Joins MathWorks as Hire #1 MATLAB Developer 1988/9 13
1992 MATLAB 4 Command Line, Graphics, and Help Browser (helpdesk) MATLAB is more than a language: Library of mathematical functions Customizable by toolboxes M-file functions and scripts 2d/3d Graphics Matrix data type (2-d complex array) 14
1996 MATLAB 5.0 MATLAB Language Evolves Beyond the MATRIX Data Type 15
1996 MATLAB 5.0 Financial Toolbox Launched 16
1998-1999 MATLAB 5.2 (R10) and 5.3 (R11) Desktop Evolves, Debugger, Enhanced 3D Graphics 17
2000-2003 MATLAB 6.0-6.5 (R12-R13) New Dock-able Desktop, Command History, Function Handles fhandle = @humps; x = fminbnd(fhandle, 0.3, 1) x = 0.6370 MATLAB JIT Introduced 18
2000-2003 MATLAB 6.0-6.5 (R12-R13) Start Menu, More GUI Tools (Apps), and More Finance Products JAVA Interface 19
2004 MATLAB 7 (R14) Evolving Desktop, Distributed Computing, Market Datafeeds Anonymous functions: sqr = @(x) x.^2; Nested functions: function x = A(p1, p2)... function y = B(p3)... end... end 20
2004 MATLAB 7 (R14) And Publishing of Scripts MATLAB scripts Published Report 21
2006 MATLAB 7.2 (R2006a) Move to Twice a Year Release, M-Lint Integrated into Editor 22
2007 MATLAB 7.5 (R2007a/b) Dataset and Categorical Arrays Statistics Toolbox (future MATLAB data types) Categorical variables Dataset variable 23
2008 MATLAB 7.8 (R2008a) Econometrics Toolbox Launched, Performance Improvements 24
2008 MATLAB 7.8 (R2008a) Modernized Object-Oriented Programming 25
2008 MATLAB 7.9 (R2008b) New Symbolic Engine 26
2009 MATLAB 7.8/7.9 (R2009a/b) Protected Code,.NET Interface Visible IP Sharing MATLAB Code MATLAB Apps MATLAB User MATLAB User p-code MATLAB User Protected IP Sharing 27
2010 MATLAB 7.10/7.11 (R2010a/b) GPU Support Additional Code Additional Code 28
2011 MATLAB 7.13/7.14 (R2011a/b) Big.MAT Files Partial Read/Write, 80+ Tools (aka Apps) 29
30
2012 MATLAB 7.13 (R2012b) New Desktop Launched, Improved Discoverability, Apps 31
2012 MATLAB 7.13 (R2012b) New Desktop Launched, Improved Discoverability, Apps 32
2012 MATLAB 7.13 (R2012b) MATLAB Production Server Launched Web Applications MATLAB Compiler Web Server MATLAB Production Server Portfolio Optimization Desktop Applications Pricing Application Server Risk Analytics Batch Applications Database Server 34
2012 MATLAB 7.13 (R2012b) MATLAB Production Server Example: Web Asset Allocation http://54.208.30.187/mwa/ 35
2012 MATLAB 7.13 (R2012b) MATLAB Production Server Example: Predictive Modeling http://is.gd/mwdfw 36
2013 MATLAB 7.14/15 (R2013a/b) Unit Testing and Datasets become Tables in MATLAB 37
Future Directions of MATLAB 2014 - onwards 38
MATLAB The Financial Development Platform Access Files Databases Datafeeds Research and Quantify Data Analysis and Visualization Financial Modeling Application Development Share Reporting Applications Production Trading Toolbox Spreadsheet Link EX Database Datafeed Financial Instruments Financial Statistics MATLAB Econometrics Optimization Report Generator Builder EX Builder NE Builder JA Compiler Production Server Parallel Computing MATLAB Distributed Computing Server 39
MATLAB The Financial Development Platform Access Files Databases Datafeeds Research and Quantify Data Analysis and Visualization Financial Modeling Application Development Share Reporting Applications Production Trading Toolbox Spreadsheet Link EX Database Datafeed Financial Instruments Financial Statistics MATLAB Econometrics Optimization Report Generator MATLAB Compiler SDK MATLAB Compiler Production Server Parallel Computing MATLAB Distributed Computing Server 40
Cloud as a New Platform BILLIONS of users MILLIONS of apps Cloud mobile, browser, social, big data HUNDREDS OF MILLIONS of users 10,000s of applications PC - LAN, Internet MILLIONS of users 1,000s of applications Terminal - mainframe, mini Source: IDC, 2013 41
MATLAB Mobile Support for iphone, ipad, and Android 42
Cloud Enhancing Your MATLAB Desktop MATLAB Discributed Computing Server on Amazon EC2 43
The 4 V s of Big Data Volume Veracity Velocity Variety 44
Big Data Capabilities in MATLAB Memory and Data Access 64-bit processors Memory Mapped Variables Disk Variables Databases Datastores Programming Constructs Streaming Block Processing Parallel-for loops GPU Arrays SPMD and Distributed Arrays MapReduce Platforms Desktop (Multicore, GPU) Clusters Cloud Computing (MDCS on EC2) Hadoop 45
New Big Data Capabilities in MATLAB Memory and Data Access 64-bit processors Memory Mapped Variables Disk Variables Databases Datastores Programming Constructs Streaming Block Processing Parallel-for loops GPU Arrays SPMD and Distributed Arrays MapReduce Platforms Desktop (Multicore, GPU) Clusters Cloud Computing (MDCS on EC2) Hadoop 46
Analyze Big Data mapreduce Use the powerful MapReduce programming technique to analyze big data Multiple items (keys) to organize and process Intermediate results do not fit in memory ******************************** * MAPREDUCE PROGRESS * ******************************** Map 0% Reduce 0% Map 20% Reduce 0% Map 40% Reduce 0% Map 60% Reduce 0% Map 80% Reduce 0% Map 100% Reduce 25% Map 100% Reduce 50% Map 100% Reduce 75% Map 100% Reduce 100% On the desktop Analyze big database tables (Database Toolbox) Increase compute capacity (Parallel Computing Toolbox) Access data on HDFS to develop algorithms for use on Hadoop With Hadoop Run on Hadoop using MATLAB Distributed Computing Server Deploy applications and libraries for Hadoop using MATLAB Compiler 47
Mapreduce Data Store Map Reduce 1503 UA LAX -5-10 2356 540 PS BUR 13 5 186 1920 DL BOS 10 32 1876 1840 DL SFO 0 13 568 272 US BWI 4-2 359 UA PS DL DL US 2356 186 1876 568 359 UA 2356 UA 1867 UA 1365 PS 186 784 PS SEA 7 3 176 PS 176 PS 237 796 PS LAX -2 2 237 PS 237 1525 UA SFO 3-5 1867 UA 1867 DL 1876 632 US PS SJC 2-4 245 1610 UA MIA 60 34 1365 2032 DL EWR 10 16 789 2134 DL DFW -2 6 914 US UA DL DL 245 1365 789 914 DL 914 US 359 US 245 48
Statistics and Machine Learning What s New Classification Learner New app to train models and classify data using supervised machine learning Features Import and interactively explore data Choose kfold or holdout validation Train SVM, knn, bagged trees and other algorithms Assess results using classification accuracy, ROC curves and Confusion Matrices Export models to the MATLAB or generate MATLAB code 49
Statistics and Machine Learning What s New? New: Classification Learner app Multiclass SVM Statistical tests for comparing classifiers Kmediods Clustering (robust to outliers) C Code Generation for PCA Requires MATLAB Coder Enhancements: Speedup of the kmeans and gmdistribution using the kmeans++ Performance enhancements for decision trees and performance curves 50
MATLAB Distributed Computing Server with Hadoop Datastore HDFS MATLAB Distributed Computing Server Node Data Map Reduce Node Data Map Reduce MATLAB MapReduce Code Node Hadoop Data Map Reduce 51
MATLAB Compiler with Hadoop Datastore HDFS MATLAB runtime Node Data Map Reduce Node Data Map Reduce Node Data Map Reduce Hadoop MATLAB MapReduce Code 52
and much more to come 53
MATLAB The Financial Development Platform Access Files Databases Datafeeds Research and Quantify Data Analysis and Visualization Financial Modeling Application Development Share Reporting Applications Production Trading Toolbox Spreadsheet Link EX Database Datafeed Financial Instruments Financial Statistics MATLAB Econometrics Optimization Report Generator MATLAB Compiler SDK MATLAB Compiler Production Server Parallel Computing MATLAB Distributed Computing Server 54
2015 The MathWorks, Inc. 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. 55