X Window System =============== The X Window system is a principal way to get GUI access to the clusters. The **X Window System** (commonly known as **X11**, based on its current major version being 11, or shortened to simply **X**, and sometimes informally **X-Windows**) is a computer software system and network [protocol](http://en.wikipedia.org/wiki/Protocol_%28computing%29 "Protocol (computing)") that provides a basis for [graphical user interfaces](http://en.wikipedia.org/wiki/Graphical_user_interface "Graphical user interface") (GUIs) and rich input device capability for [networked computers](http://en.wikipedia.org/wiki/Computer_network "Computer network"). !!! Note "Note" The X display forwarding must be activated and the X server running on client side X display --------- In order to display graphical user interface GUI of various software tools, you need to enable the X display forwarding. On Linux and Mac, log in using the -X option tho ssh client: ```bash local $ ssh -X username@cluster-name.it4i.cz ``` X Display Forwarding on Windows ------------------------------- On Windows use the PuTTY client to enable X11 forwarding. In PuTTY menu, go to Connection->SSH->X11, mark the Enable X11 forwarding checkbox before logging in. Then log in as usual. To verify the forwarding, type ```bash $ echo $DISPLAY ``` if you receive something like ```bash localhost:10.0 ``` then the X11 forwarding is enabled. X Server -------- In order to display graphical user interface GUI of various software tools, you need running X server on your desktop computer. For Linux users, no action is required as the X server is the default GUI environment on most Linux distributions. Mac and Windows users need to install and run the X server on their workstations. X Server on OS X ---------------- Mac OS users need to install [XQuartz server](http://xquartz.macosforge.org/landing/). X Server on Windows ------------------- There are variety of X servers available for Windows environment. The commercial Xwin32 is very stable and rich featured. The Cygwin environment provides fully featured open-source XWin X server. For simplicity, we recommend open-source X server by the [Xming project](http://sourceforge.net/projects/xming/). For stability and full features we recommend the [XWin](http://x.cygwin.com/) X server by Cygwin |How to use Xwin |How to use Xming | | --- | --- | |[Install Cygwin](http://x.cygwin.com/) Find and execute XWin.exeto start the X server on Windows desktop computer.[If no able to forward X11 using PuTTY to CygwinX](cygwin-and-x11-forwarding/) |<p>Use Xlaunch to configure the Xming.<p>Run Xmingto start the X server on Windows desktop computer.| Read more on [http://www.math.umn.edu/systems_guide/putty_xwin32.html](http://www.math.umn.edu/systems_guide/putty_xwin32.shtml) Running GUI Enabled Applications -------------------------------- !!! Note "Note" Make sure that X forwarding is activated and the X server is running. Then launch the application as usual. Use the & to run the application in background. ```bash $ module load intel (idb and gvim not installed yet) $ gvim & ``` ```bash $ xterm ``` In this example, we activate the intel programing environment tools, then start the graphical gvim editor. GUI Applications on Compute Nodes --------------------------------- Allocate the compute nodes using -X option on the qsub command ```bash $ qsub -q qexp -l select=2:ncpus=24 -X -I ``` In this example, we allocate 2 nodes via qexp queue, interactively. We request X11 forwarding with the -X option. It will be possible to run the GUI enabled applications directly on the first compute node. **Better performance** is obtained by logging on the allocated compute node via ssh, using the -X option. ```bash $ ssh -X r24u35n680 ``` In this example, we log in on the r24u35n680 compute node, with the X11 forwarding enabled. The Gnome GUI Environment ------------------------- The Gnome 2.28 GUI environment is available on the clusters. We recommend to use separate X server window for displaying the Gnome environment. Gnome on Linux and OS X ----------------------- To run the remote Gnome session in a window on Linux/OS X computer, you need to install Xephyr. Ubuntu package is xserver-xephyr, on OS X it is part of [XQuartz](http://xquartz.macosforge.org/landing/). First, launch Xephyr on local machine: ```bash local $ Xephyr -ac -screen 1024x768 -br -reset -terminate :1 & ``` This will open a new X window with size 1024x768 at DISPLAY :1. Next, ssh to the cluster with DISPLAY environment variable set and launch gnome-session ```bash local $ DISPLAY=:1.0 ssh -XC yourname@cluster-name.it4i.cz -i ~/.ssh/path_to_your_key ... cluster-name MOTD... yourname@login1.cluster-namen.it4i.cz $ gnome-session & ``` On older systems where Xephyr is not available, you may also try Xnest instead of Xephyr. Another option is to launch a new X server in a separate console, via: ```bash xinit /usr/bin/ssh -XT -i .ssh/path_to_your_key yourname@cluster-namen.it4i.cz gnome-session -- :1 vt12 ``` However this method does not seem to work with recent Linux distributions and you will need to manually source /etc/profile to properly set environment variables for PBS. Gnome on Windows ---------------- Use Xlaunch to start the Xming server or run the XWin.exe. Select the "One window" mode. Log in to the cluster, using PuTTY. On the cluster, run the gnome-session command. ```bash $ gnome-session & ``` In this way, we run remote gnome session on the cluster, displaying it in the local X server Use System->Log Out to close the gnome-session