MATLAB® is a hugely popular platform used by engineers and scientists to analyze and design systems and products. Users with large-scale simulations and data analytics tasks can use MathWorks parallel computing products to speed up and scale these workloads by taking advantage of multi-core processors, GPU acceleration as well as compute clusters. To create clusters, MATLAB Distributed Computing Server™ is used on the cluster nodes and includes a built-in job scheduler that supports batch jobs, parallel computations and distributed large data.
It has long been possible to use Microsoft Azure to host MATLAB Distributed Computing Server clusters, but significant work was required by each customer to create the environment, configure the software and provide the required cluster management capabilities. We have now made it much easier and quicker to use Microsoft Azure for MATLAB Distributed Computing Server clusters by making available a set of Azure Resource Manager templates and scripts.
Compared to provisioning and using on-premises hardware for MATLAB Distributed Computing Server clusters, using Microsoft Azure has many benefits:
- A wide range of virtual machines (VMs) are available. VMs can be chosen according to the requirements of your application and how soon you need the work completed – choose the number of cores, amount of memory, processor speed, network interconnect and so on.
- One or more clusters can be created on-demand. Create clusters when required using the number and type of VMs you need, run your workloads, then delete them when you are done.
- Only pay for the compute you consume. Azure compute is billed by the minute, so you only pay for what you use, whether that is under an hour or for a few days.
- Leverage scale you never would have had access to on-premises. You can provision large numbers of VMs and/or high-performance VMs for your most demanding workloads or for time-critical jobs. Create the clusters only when needed and delete them when the work is complete. You’re no longer constrained to a fixed number and type of servers.
Running MATLAB Distributed Computing Server on a cluster of Azure VMs provides user-friendly, high performance computing at very low cost compared to the total cost of ownership of providing an equivalent MATLAB Distributed Computing Server capability on on-premises servers deployed in our own data centres. The users of MATLAB Distributed Computing Server are able to start and stop the Azure-based cluster, or even just portions of it, using some simple PowerShell scripts, thereby keeping Azure billing costs to a minimum.
James Mann
Solution Architect
Aberdeen Asset Management PLC
Using the new templates and scripts, one or more MATLAB Distributed Computing Server clusters can be created by specifying a small set of configuration parameters, such as the number of worker VMs and the size of worker VMs – then the network is configured, the VMs created and the MATLAB Distributed Computing Server is configured. Script commands allow clusters to be listed, paused, resumed and deleted. Licensing is handled by the MathWorks Hosted License Manager, which includes support for on-demand licensing as well as perpetual or annual licensing.
MATLAB also supports third-party job schedulers, in addition to the job scheduler included with MATLAB Distributed Computing Server. In the near future we’ll be adding support to enable Azure Batch to be used as a job scheduler with MATLAB.
Further information, links to the templates, scripts and detailed documentation are available as part of the Windows Virtual Machines documentation.