Remote Rendering (reverse connection)

This thread is more a sanity check, I guess …

I am trying to do some remote rendering on a cluster I have access to (behind a firewall), so I am trying to get the remote rendering to work (note, I am using Paraview 5.7.0 and client/server rendering is working if I work locally, i.e. on localhost)

On the cluster, I start the pvserver as per the user guide

mpirun -np numCores pvserver -rc --client-host=client_host_name --server-port=11111

My question is around client_host_name, i.e. is that just my IPv4 address? I have tried that (and it is not working, I am only seeing

Connecting to client (reverse connection requested)...
Connection URL: csrc://IPv4_address:11111

and nothing happens. On the Paraview side, I have set up a client / server (reverse connection) model with manual startup type, after running this the server is still not able to connect.

Is there anything else I can try? And is the IPv4 address here correct or should I use something else? The command I am using to get my my IP address is

wget -qO- | xargs echo

This is from my notes when I managed to set up a reverse connection.
Hope this helps.

At the client side

  • Get your client host name
    hostname -a
    (If you want the IP address: hostname -i)
  • In Paraview
    • File > Connect > Add Server
      • Name: the server host name
        Server type: Client/Server (reverse connection)
        Port 11111
    • Configure
      • Manual startup

At the server side

  • Test that the server-to-client connection is alive
    ping -c 2 [client host name]

  • Check that the port used by pv (11111) is free
    netstat -na | grep 11111 # network statistics
    lsof -i :11111 # list open files

  • Launch from pvsever:

    mpirun -np 1 ${PVDIR}/bin/pvserver -display $DISPLAY --force-offscreen-rendering --hostname=$(hostname -a) -rc --client-host=[client host name] --egl-device-index=${deviceindex}

    The variable deviceindex is clearly local to my situation.

At the client side again

Once pvserver is on, I connect to it from the menu File > Connect, where I find the settings at the top.
On the client terminal, I get

Accepting connection(s): [client]:11111

On the server terminal, I get

Connecting to client (reverse connection requested)…
Connection URL: csrc://[server host name]:11111
Client connected.

1 Like

Thanks for sharing the additional commands, quite useful (oddly I did not get a notification of your reply, sorry for the late reply). I will test it over this weekend and see how far I can get. Can you just confirm if your cluster was behind a firewall as well or not?

The compute node I wanted to act as ParaView server was firewalled behind a login node.
It is a single compute node because I wanted to leverage the GPU device mounted there.
As an evidence of the firewalling, the server behind the login node could ping the client outside of the login node, but not viceversa.