Can I run an in-situ catalyst on a server and view the result remotely from my local desktop?

Dear all,

I am wondering may I run an in-situ catalyst program on a server and view the result remotely from my local desktop?

Thank you in advance,

Dawei

Hi,

Absolutely !
You have to set ‘LiveVisualization’ to True in your Catalyst script. Then, while the simulation is running, you can connect ParaView to it from the menu ‘Catalyst > Connect’
For more info, you may want to look at the Catalyst UserGuide, that can be found in the ParaView download page

Hi,

Thank you so much for your reply. What I want to ask is can we run the code on server @192.168.0.1, and open a paraview GUI @192.168.0.2. I know how to connect a pvserver, however, Catalyst > Connect only allow you to input port number not the IP address. is there a way I can connect the Catalyst server remotely?

Thank you so much for your time,

Dawei

Hi,

Catalyst works with a reverse connection concept. It means that the Catalyst code on server will try to connect the GUI. So the IP configuration must be set in the Catalyst side. If you use a python script, you should have a line like
coprocessor.DoLiveVisualization(datadescription, "someIPadress", 22222)

In your case someIPadress should be the paraview GUI 192.168.0.2. Then in the GUI you should open the corresponding port (by default 22222).

Hello, I want to do something similar but in this case my remote system is on a completely different network and my local machine does not have a public hostname.

For normal ParaView client-host setup (i.e. not reverse connection), I can just tunnel ports using ssh -L (I wrote some instructions for users of my scientific code here) but this doesn’t seem to work for Catalyst Live. If I try and ‘Connect’ to a Catalyst Live session after tunnelling ports (from local to remote), I get the following errors (with ParaView 5.10.1)

( 264.677s) [paraview        ]          vtkSocket.cxx:199    ERR| vtkServerSocket (0x16cf2db0): Socket error in call to bind. Address already in use.
( 264.687s) [paraview        ]vtkTCPNetworkAccessMana:439    ERR| vtkTCPNetworkAccessManager (0x153f3c0): Failed to set up server socket.

I guess if I figured out how to set up a normal ParaView client-server reverse connection with my local machine (which doesn’t have a public hostname) as the client, then it may be possible to apply the method to Catalyst Live.

I should also add that I would like to do this with the new Catalyst v2.0 scripts (i.e. generated from v5.9 or later) in case that complicates things.

Hi Miren, a few extra details are available in the ParaView tutorial and here:
https://www.paraview.org/Wiki/Reverse_connection_and_port_forwarding#Reverse_Connection_over_a_Reverse_ssh_Tunnel_with_portfwd

The security hiccup I mentioned is that ssh in general won’t blindly forward traffic that originates on a remote node over a tunnel. Because of that it is sometimes necessary inject portfwd or socat or similar as an intermediary process on the login node. All the intermediary does is connect the incoming traffic from the compute node to the ssh tunnel that also exists on the log node back, where it then goes to the client.

Thanks for the pointer, @Dave_DeMarle. Setting up reverse connections for Catalyst (and also remote ParaView rendering) worked once I realised I needed to change the -L flags in my ssh command to -R in order to tunnel from the remote to the local client rather than vice versa.