Testing With Graphics
Jump to navigation
Jump to search
Testing with Graphics: X-forwarding
If you need to use graphics while testing your code, e.g. when using a debugger such as DDT or DDD, you have the following options:
- You can use the
debugjob
command which automatically provides X-forwarding support.123456789$
ssh
niagara.scinet.utoronto.ca -X
USER@nia-login07:~$ debugjob
debugjob: Requesting 1 nodes
for
60 minutes
xalloc: Granted job allocation 189857
xalloc: Waiting
for
resource configuration
xalloc: Nodes nia0030 are ready
for
job
[USER@nia1265 ~]$
- If
debugjob
is not suitable for your case due to the limitations either on time or resources (see above #Testing), then you have to follow these steps: You will need two terminals in order to achieve this:- In the 1st terminal
- ssh to
niagara.scinet.utoronto.ca
and issue yoursalloc
command - wait until your resources are allocated and you are assigned the nodes
- take note of the node where you are logged to, ie. the head node, let's say
niaWXYZ
12345678$
ssh
niagara.scinet.utoronto.ca
USER@nia-login07:~$ salloc --nodes 5 --
time
=2:00:00
.salloc: Granted job allocation 141862
.salloc: Waiting
for
resource configuration
.salloc: Nodes nia1265 are ready
for
job
[USER@nia1265 ~]$
- ssh to
- On the second terminal:
- ssh into
niagara.scinet.utoronto.ca
now using the-X
flag in the ssh command - after that
ssh -X niaWXYZ
, ie. you will ssh carrying on the '-X' flag into the head node of the job - in the
niaWXYZ
you should be able to use graphics and should be redirected by x-forwarding to your local terminal
12345ssh
niagara.scinet.utoronto.ca -X
USER@nia-login07:~$
ssh
-X nia1265
[USER@nia1265 ~]$ xclock
## just an example to test the graphics, a clock should pop up, close it to exit
[USER@nia1265 ~]$ module load ddt
## load corresponding modules, eg. for DDT
[USER@nia1265 ~]$ ddt
## launch DDT, the GUI should appear in your screen
- ssh into
- In the 1st terminal
Observations:
- If you are using ssh from a Windows machine, you need to have an X-server, a good option is to use MobaXterm, that already brings an X-server included.
- If you are in Mac OS, substitute -X by -Y
- Instead of using two terminals, you could just use
screen
to request the resources and then detach the session and ssh into the head node directly.