MATLAB is a versatile software environment for scientists. It is used for analysing data, developing algorithms, creating models and performing simulations.
At Utrecht University there are currently about 300 researchers who are running MATLAB on their workstations. However, sometimes the datasets are too big, or the computational demands are too heavy. The workstations are running for hours or even days and, in the meantime, they are unavailable for other tasks.
Overcome performance problems
Two PhD students (Filipe Serra Braganca and Jelle Treep) have used computer clusters to overcome these problems. Filipe has used MATLAB on the cluster of Utrecht Bioinformatics Center (UBC cluster) to analyse sensor and optical motion capture data from animals to perform an objective assessment of locomotion and detect orthopaedic pain. Jelle has used the MATLAB on the Lisa cluster of SURFsara to run atmospheric and ecological models to estimate seed dispersal by wind.
Running MATLAB on LISA or UBC cluster
Jelle who defended his thesis this spring, started with UBC cluster. He soon found out that he could not run his programs directly on the UBC cluster. “MATLAB on UBC can only run pre-compiled code under Linux”, Jelle explains, “and I have a Windows workstation. On LISA you can compile your MATLAB code and run it”. For Jelle moving his computations to Lisa was worth the effort: “In my case it was easy to run for-loops in parallel using multiple cores (e.g. 32) and submit multiple jobs (e.g. 10) at the same time. Instead of waiting three weeks for my results, I was done within a day. This saves much time and keeps my local workstation free for other tasks.” For MATLAB users the advantage of Lisa is the possibility to open a MATLAB GUI, run tests and compile directly on the cluster. “This makes debugging and running much more straightforward and efficient for a novice HPC user” says Jelle.
But if you have MATLAB on Linux
“Fortunately, I have a Linux workstation”, says Filipe, “so I could compile my MATLAB programs on my workstation and copy it to the UBC cluster. I have optimized my code to run in parallel, this way I have saved a lot of time. Otherwise, I would have to dedicate 100% of my workstation to MATLAB only, leaving it unusable for other tasks for days.” However, running a program on a cluster is more involved than running locally. “To use my scripts on the cluster, I had to adjust my code, log in to the cluster, compile it, upload data, and submit the job. Although the process works, it is time-consuming, especially when there are still errors in the code.”