Notice: Although this manual is still valid, more effective way to use applications with GUI is described on page Remote desktop.
X-window is a system for sharing the graphical interface of applications (windows) through network. In MetaCentrum you can use it for accessing the graphical interface of certain programs (like Matlab, Maple or SNAPP) running in clusters from the user's desktop.
GUI of unix systems are build on X-Window system, which supposes, that a program and his GUI run on different computers in net. Programs in X-Window system display their GUI on so called X-server which is defined by environment variable DISPLAY.
For example: We are sitting in front of computer named jenicek and start up X-Window program in machine called marenka. If we set variable DISPLAY=jenicek:0 on marenka and if X-server is running in jenicek, execution of a program will be running in a remote computer, but will be displaying on screen in front us and reacting on keyboard an mouse on our table.
You can use programs with GUI in MetaCentrum, if this programs supports X-Window.
Usually it´s not necessary to set manually the variable DISPLAY, it´s set by ssh run with the option for X11 tunneling.
- Windows – You should set and fill the correct PuTTy options or use the plink program from complete PuTTy installation and then use the Linux approach.
- Unix/Linux – You should add the option -X to ssh command. So like: ssh -X.
After the frontend connection with allowed X11 tunneling you should specify the parameter -X for the qsub. So qsub -X sets the DISPLAY variable on the granted machine. See more info in article Intertive jobs.
The simplest way how to use X-window in MetaCentrum is to submit an interactive job with X-protocol tunneling enabled by the option -X for both ssh and qsub:
jenicek$ ssh -X skirit.metacentrum.cz skirit$ qsub -X -I -l select=1:ncpus=2:mem=4gb:scratch_local=10gb -l walltime=1:00:00 -l matlab=1 konos6$ echo $DISPLAY localhost:50.0 konos6$ module add matlab ; matlab
Direct connection by X-protocol
If you need a direct connection by X-protocol, for example because of reduced latency, you can set the DISPLAY variable on the computing machine to the name of your personal machine:
jenicek$ ssh skirit.metacentrum.cz skirit$ qsub -I -l select=1:ncpus=2:mem=4gb:scratch_local=10gb -l walltime=1:00:00 -l matlab=1 konos6$ echo $DISPLAY konos6$ export DISPLAY=jenicek.ics.muni.cz:0 konos6$ module add matlab ; matlab
On your machine (jenicek.ics.muni.cz in this example) you have to allow incoming connections by
jenicek$ xhost +
and make sure that your X-server does not have disabled incoming connections. For example, the standard setting on Ubuntu is to start X-server with the options -nolisten tcp that disables incoming connections.
Step by step
For Windows users
- Install Xming. Run it.
- Install PuTTy. Run it.
- Set the connection parameters in PuTTy according the image in right and save it.
- Connect with set up parameters to some frontend.
- Run your interactive job.