[Paraview] Utilizing Server GPU from an external command

Chris Coutinho c.coutinho at redstack.nl
Thu Mar 8 12:13:03 EST 2018


Hello ParaView users,

In short:
I'm having an issue with utilizing a servers graphics card via ssh. When starting the pvserver manually from the server I don't experience any problems, but attempting to start a pvserver remotely from my client through ssh, I run into problems. I am new to configuring ssh and don't really know what the root of my problem is.


The problem:
I installed ParaView 5.4.1 from source (tags/v5.4.1) with MPI support enabled on an OpenSUSE Leap 42.3 workstation, with the goal of accessing this server from a Windows (laptop) client within a VPN network. The client laptop has the identical  The server has a single Nvidia graphics card installed (Quadro K2200), when I start the server manually on the server I'm able to connect to it from the client and utilize the server GPU; however, when sending the same pvserver command through ssh via the client, I get the 'Display is not accessible on the server side' error.

To start the pvserver manually from the server itself I execute a command similar to this:

       mpiexec -np 8 /usr/local/bin/pvserver --server-port=11111 --client-host=<myclient> --use-offscreen-rendering

After I execute this command from the server, I've been able to confirm that the client is using the server's graphics card by looking at the output of `nvidia-smi`


My remote connection string looks like this:

       ssh <user>@<server> mpiexec -np 8 /usr/local/bin/pvserver --server-port=11111 --client-host=<myclient> --use-offscreen-rendering

Indeed, after connecting to my remote server using the remote connection via the client, I saw that there was no utilization of the graphics card via `nvidia-smi`.



Here is the output of `glxgears` related to OpenGL from the server:

```
$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro K2200/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 390.25
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 390.25
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.25
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
```

Here is the same output from an ssh connection from the client:

```
ssh <user>@<server> glxinfo | grep -i opengl
Error: unable to open display
```

And the same with x forwarding enabled (via Xming installed on the client):

```
ssh -X <user>@<server> glxinfo | grep -i opengl
Warning: No xauth data; using fake authentication data for X11 forwarding.
OpenGL vendor string: VMware, Inc.OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
OpenGL version string: 3.0 Mesa 17.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
```

Looking at this output I'm coming to the conclusion that my ssh connection is using the graphics driver of my client machine, but I actually want to utilize the servers GPU. Is this a use case for reverse port tunneling or something similar?

I've attempted a simiar reverse connection as follows, but this doesn't give me any info on the gpu:

```
ssh -X -R 11111:localhost:22 <user>@<server> glxinfo | grep -i opengl
Warning: No xauth data; using fake authentication data for X11 forwarding.
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
OpenGL version string: 3.0 Mesa 17.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
```

I'm sure this is a common issue and has been solved previously, but I'm unable to parse through the mailing lists effectively to get at my problem. It's also possible that I'm looking for a solution in the wrong place. Both of these systems are in a VPN, so maybe ssh isn't necessary, but I don't know of another way of starting the pvserver remotely without ssh.


Thanks in advance,
Chris



Met vriendlijke groet,
REDstack BV

Chris Coutinho
Onderzoeker/Data Analist

tel: +31 (0)6 - 2222 5785
post: Postbox 199, 8600 AD Sneek
bezoekadres: Pieter Zeemanstraat 6, 8606 JR Sneek
email: c.coutinho at redstack.nl
www: www.redstack.nl





More information about the ParaView mailing list