MATLAB 2016a Release Summary for Scientific Computing
March 15 2016 in MATLAB, Programming | Tags: 2016a, MATLAB, optimization, parallel | Author: Christopher Rackauckas
There is a lot to read every time MATLAB releases a new version. Here is a summary of what has changed in 2016a from the eyes of someone doing HPC/Scientific Computing/Numerical Analysis. This means I will leave off a lot, and you should check it out yourself but if you’re using MATLAB for science then this may cover most of the things you care about.
- Support for sparse matrices on the GPU. A nice addition is sprand and pcg (Preconditioned Conjugate Gradient solvers) for sprase GPU matrices.
- One other big change in the parallel computing toolbox is you can now set nonlinear solvers to estimate gradients and Jacobians in parallel. This should be a nice boost to the MATLAB optimization toolbox.
- In the statistics and machine learning toolbox, they added some algorithms for high dimensional data and now let you run kmeans on a GPU.
- If you are using Distributed Computing Servers, then you’ll be glad to hear that linear solvers (backslash,cgs,pcg) now work on distributed arrays.
- Bioinformatics toolbox is virtually unchanged.
- The PDE solver is pretty much the same, but can handle eigenvalue problems.
- MATLAB finally has a unit testing framework.
To me, this seems like a pretty quiet release. The new editor in the style of IPython/IJulia/Mathematica has never been that useful for me making larger numerical packages, though for some it could help writing scientific journals. It seems a lot has been put into more Simulink functionality this release which I never use. All in all, after some strong updates to the parallel computing toolbox (massive upgrades in GPU computing the last few times) and a JIT compiler, it seems the focus on performance has slowed a bit.
Honestly, I think what they really need to tackle next is multiple GPU linear algebra. With the availability of CuBLASxt as a way to perform such calculations, and with the leading GPU (the Tesla K80) being a dual GPU, it seems like a step that shouldn’t be too hard but could benefit a lot of people.