How to improve interactive performance of MATLAB#

When using ssh X11-Forwarding (options -X or -Y), matlab can be slow to start and also exhibit slow response to interactive use. This is because X11 sends many small packets over the network, often awaiting a response before continuing. This interacts unfavorably with medium or even higher latency connections, i.e. WiFi.

A way to eliminate this issue is to use dedicated resources and to start a remote desktop session that does not suffer from network latencies in the same manner. This approach requires a VNC client vncviewer installed on your local machine. A widely used VNC client is TurboVNC.

If your local machine has Linux or mac operating system you can use a launcher provided by DKRZ to easily establish a VNC connection to a Levante node. The launcher automatically connects to Levante, reserves a node, starts a vnc server and connects to this server using your local vncviewer. You need to complete the downloaded script start-vnc by adding your personal user and project accounts or to use the corresponding command line options, for example:

your-machine:~> chmod u+x start-vnc
your-machine:~> ./start-vnc
your-machine:~> ./start-vnc -u <userid> -v /path/to/vncviewer -b '-A <project-id> -p interactive --mem=10G'

To list all available command line options execute:

your-machine:~> ./start-vnc -h

If you have not set a VNC server password yet, the vncpasswd command will be called in the script and you will be prompted to create a password:

No VNC password found. Please set now.
Would you like to enter a view-only password (y/n)? n

The created password will be stored in the $HOME/.vnc/passwd file. Since it only protects the VNC session, it should be different from your regular access password to DKRZ services. Also, since the password will only be used in automated logins afterwards and you don’t need to enter it on the console, it can be long and random at no cost. Furthermore, public key based login to Levante is recommended to avoid multiple entering of your regular password.

In the VNC desktop that should appear on your local workstation, open a terminal window by clicking the Activities menu and typing terminal in the search field subsequently shown.

Thereafter, you can load the matlab module in the terminal window and start the application:

$ source /etc/profile
$ module load matlab
$ matlab &

On GPU nodes, the program execution can additionally benefit from hardware acceleration for 3D-plots or other graphics-intensive matlab sessions. In this case you need to start matlab with vglrun and without software OpenGL:

$ vglrun matlab

To terminate your VNC session choose the Disconnect icon [x] in the top menu of the VNC desktop.