The MATLAB Technical Computing Environment 2

Posted by Cleve Moler,

The ACM Special Interest Group on Programming Languages, SIGPLAN, expects to hold the fourth in a series of conferences on the History of Programming Languages in 2020, see HOPL-IV. The first drafts of papers are to be submitted by August 2018. That long lead time gives me the opportunity to write a detailed history of MATLAB. I plan to write the paper in sections, which I'll post in this blog as they are available. This is the seventh, and final, installment.

MATLAB has evolved over the past 35 years into a rich technical computing environment. Here is an overview of some of the tools available.

Contents

Desktop

The MATLAB desktop was introduced in 2000. Here is the default layout of the desktop. This snapshot was taken while I was working on my previous post. Four panels are visible, the current folder viewer on the left, the workspace viewer on the right, the editor/debugger in the top center, and the traditional command window in the bottom center. A file viewer and a command history window are not in the default layout, but can be included in personalized layouts.

Any of the panels can be closed, or undocked into a standalone window. I have two screens available on the desk in my office. I usually put the command window on one screen and the editor on the other.

Workspace

Here are the contents of the workspace when I execute the source script for my previous post. If I click on any of the variables, it will be opened in an appropriate viewer

Editor/Debugger

When I work on this blog, I spend most of my time using this MATLAB editor. The source for each post is an executable script, with descriptive text in comments and section headings in comments beginning with double percent signs, %%. The final production of a post is initiated with the "Publish" tab. I have pretty much abandoned my old Unix text editor, "vi", after many years of faithful service.

Live Editor

The Live Editor was introduced in 2016 and is still under active development. MATLAB input, output and graphics are combined in a single interactive document. The document may be exported to HTML, PDF, or LaTeX.

Here are a few examples. The table generated by the small gradebook from my previous post is nicely formatted.

Expressions from the Symbolic Toolbox are typeset.

And graphical output may be included in the document.

Parallel computing

The Parallel Computing Toolbox (PCT) was introduced at the Super Computing conference in 2004. The next year, at SC05, Bill Gates gave the keynote talk, using MATLAB to demonstrate Microsoft's entry into High Performance Computing.

The toolbox supports coarse grained, distributed memory parallelism by running many MATLAB workers on many machines in a cluster, or on many cores in a single machine. Originally MATLAB used MPI for the message passing, but in more recent versions of the toolbox our own utilities have replaced MPI.

By far the most popular feature of the PCT is the parallel for loop command, parfor.

GPUs

Support for Graphics Processing Units was added to the Parallel Computing Toolbox in 2010. Eight years later, in release R2018a, the gpuarray has grown to have 385 associated methods, including all of the familiar matrix computations, lu, eig, svd and mldivide (backslash).

Toolboxes

Much of modern MATLAB's power derives from the toolboxes available for specialized applications. In release 2018a there are 63 of them. Here is the list.

Parallel Computing

  • MATLAB Distributed Computing Server
  • Parallel Computing Toolbox

Math, Statistics, and Optimization

  • Curve Fitting Toolbox
  • Global Optimization Toolbox
  • Model-Based Calibration Toolbox
  • Neural Network Toolbox
  • Optimization Toolbox
  • Partial Differential Equation Toolbox
  • Statistics and Machine Learning Toolbox
  • Symbolic Math Toolbox
  • Text Analytics Toolbox

Control Systems

  • Aerospace Toolbox
  • Automated Driving System Toolbox
  • Control System Toolbox
  • Fuzzy Logic Toolbox
  • Model Predictive Control Toolbox
  • Robotics System Toolbox
  • Robust Control Toolbox
  • System Identification Toolbox

Signal Processing and Wireless Communications

  • Antenna Toolbox
  • Audio System Toolbox
  • Communications System Toolbox
  • DSP System Toolbox
  • LTE HDL Toolbox
  • LTE System Toolbox
  • Phased Array System Toolbox
  • RF Toolbox
  • Signal Processing Toolbox
  • Wavelet Toolbox
  • WLAN System Toolbox

Image Processing and Computer Vision

  • Automated Driving System Toolbox
  • Computer Vision System Toolbox
  • Image Acquisition Toolbox
  • Image Processing Toolbox
  • Mapping Toolbox
  • Vision HDL Toolbox

Test and Measurement

  • Data Acquisition Toolbox
  • Image Acquisition Toolbox
  • Instrument Control Toolbox
  • OPC Toolbox
  • Vehicle Network Toolbox

Computational Finance

  • Database Toolbox
  • Datafeed Toolbox
  • Econometrics Toolbox
  • Financial Instruments Toolbox
  • Financial Toolbox
  • Risk Management Toolbox
  • Spreadsheet Link
  • Trading Toolbox

Computational Biology

  • Bioinformatics Toolbox
  • SimBiology

Code Generation

  • Filter Design HDL Coder
  • Fixed-Point Designer
  • GPU Coder
  • HDL Coder
  • HDL Verifier
  • MATLAB Coder
  • Vision HDL Toolbox

Application Deployment

  • MATLAB Compiler
  • MATLAB Compiler SDK
  • Spreadsheet Link

Database Access and Reporting

  • Database Toolbox
  • MATLAB Report Generator


Get the MATLAB code

Published with MATLAB® R2018a

2 CommentsOldest to Newest

Edric Ellis replied on : 1 of 2

MPI is still used by Parallel Computing Toolbox as the technology supporting distributed array computations, and SPMD blocks.

Add A Comment

Your email address will not be published. Required fields are marked *

Preview: hide