Set up of paraview server on to use GPUs on Amazon AWS?

Hi all,

I’m hoping to run pvserver on an Amazon EC2 instance with an Nvidia M60 GPU on it. Unfortunately, I’m having some issues which I believe are related to X displays on the EC2 instance. When I try to render something on the server after connecting with paraview running on my laptop, I see:

Display is not accessible on the server side.
Remote rendering will be disabled.

Why is this? What info can I provide to diagnose this issue?

1 Like

Hi Gavin,

It’s hard to say without more information. Maybe you’re missing something really simple like just making sure to export the display environment variable before starting pvserver?

export DISPLAY=:0.0

Or maybe the issue is more involved, like the graphics card drivers aren’t installed/verified, or something else.

You might find some documentation from paraviewweb relevant: https://kitware.github.io/paraviewweb/docs/graphics_on_ec2_g2.html

There are some other docs on that site as well which you may find interesting/useful.

Hope this helps,

Scott

Ideally you want to use an EGL build of ParaView.

Hi Gavin,

If you use EGL, there is no need for an X Server, and then your instance needs fewer packages installed, no need to set the DISPLAY environment variable, among other things.

You can read a blog post about it here:

https://blog.kitware.com/off-screen-rendering-through-the-native-platform-interface-egl/

At the end of that article, there is a link to some updated information as well.

Hope this helps,

Scott

1 Like

Thanks for the advice Mr. Wittenburg. That was close to the answer: there are some intermediate steps. It was more of an issue with the xorg.conf file.

I solved it by first making sure the latest nvidia drivers were installed, and running nvidia’s x configuration script with the following options:

sudo nvidia-xconfig --enable-all-gpus --use-display-device=none

which is documented here.

Then, you must manually modify the xorg.conf file and remove the ServerLayout and Screen blocks from the file, according to here.

Then, start an X server on the GPU on display 0 with:

export DISPLAY=:0
sudo X :0 &

Then pvserver should just include the argument:

pvserver <other_options> -display localhost:0

As for running on both GPUs with MPI… that’s yet to be figured out.

Thanks again! :smiley:

2 Likes

Why is EGL preferred?

OK, this all makes sense now. Thanks. And I assume that would make it easier to render on both GPUs?

Well, for rendering on multiple GPUs, I may have to let someone else with chime in. This article could be helpful though, as it seems to describe something similar to what you want:

https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/

Cheers,

Scott

1 Like