MATLAB IN THE CLOUD
Introduction
The popularity of the commercial public clouds such as Amazon Web Services and Microsoft Azure has been increasing since the past two years, and it is now a viable alternative for companies that want to reduce their capital footprint on-premise. The ability to use these compute and storage resources on a pay-as-you-go basis becomes attractive, especially for workloads that are on-demand in nature, such as the computational needs of individual researchers who may require to run analyses only at certain stages of their research work.
In research computing, a handful of commercial HPC application software are beginning to offer their solutions in the cloud. Although technically all software that can run on-premise can also run in the cloud, they are not optimised for the cloud. For example, the software license model for on-premise HPC clusters (which are fixed in numbers) does not cater for the scalability of running workloads in the cloud. Another example is the on-demand nature of certain cloud workloads. While it may be fine to pay for on-premise software for a fixed period, say 1 year, a license model that caters for the on-demand nature of the cloud, for example per-hour licensing model may be more suitable.
Matlab in the Cloud
One software that is offering a cloud-based solution is MATLAB. The latest R2019a version of MATLAB now offers the MATLAB Parallel Server (MPS) as an add-on to NUS’s campus wide MATLAB license, which lets researchers scale MATLAB programs and Simulink simulations run unlimited numbers of concurrent workers in on-premise clusters and in the cloud. The MATLAB Parallel Server (formerly known as the MATLAB Distributed Computing Engine) provides a transparent way for researchers to leverage additional compute resources in order to speed up their research and analyses. With this new version of the MATLAB Parallel Server, it is now possible for researchers to send their MATLAB and Simulink jobs to the cloud and scale their cloud workloads without having to worry about the license limitations.
Setting Up Campus Account AS a Licensed End User
MATLAB can be installed from Software Centre application available in all NUS-owned computers. For using MATLAB on personal device (laptop/computer), one has to sign up for a new MathWorks account using their NUS email address and associate it with NUS campus wide license. You may also contact IT Care (gs.ude.sun@eracti) for any assistance
Setting Up MATLAB server in the Cloud
In MATLAB, you can create clusters in Amazon AWS directly from MATLAB desktop via Cluster Profile Manager. Alternatively, you can use MathWorks Cloud Centre to create and access compute clusters in Amazon AWS with a dedicated head node and desired number of workers with auto-scaling facility. If you have data stored in Amazon S3 bucket, then you can use datastores in MATLAB to directly access the data without needing any storage on the cluster. You can also set a run time limit for the cluster.
Running a Job in the Cloud
You can let MATLAB identify the clusters using Discover Clusters Option from your local MATLAB desktop. Alternatively, you can download the cluster profile from MathWorks Cloud Centre and import it using Cluster Profile Manager within MATLAB desktop. With your cloud cluster profile set as your default, you can now run parallel computing applications on the cloud with functions such as parpool (parfor and spmd), batch, createJob etc.
Conclusion
With the availability of the MATLAB Parallel Server add-on for NUS’s campus-wide license, and the use of pre-configured cloud clusters for MATLAB, one can easily set up and launch a MATLAB job in the cloud, as shown above. Contact us if you are interested to explore the MATLAB Parallel Server, by reaching out to us on nTouch.