# Paraview benchmarks without display

**URL:** https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216
**Category:** ParaView Support
**Tags:** python
**Created:** [March 20, 2024, 7:54pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216 "2024-03-20T19:54:49Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 20, 2024, 7:54pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/1 "2024-03-20T19:54:50Z")

</div>

Hi all,

I’m trying to run the Paraview [benchmarks](https://kitware.github.io/paraview-docs/latest/python/_modules/paraview/benchmark/basic.htmll) on a Rocky Linux 8 server that has Nvidia GPUs. They run great if I have a display set, but crash if I don’t. This makes sense as a display appears with some rendering in it. I was wondering if there was a way to run these benchmarks without a display available or if there are other benchmarks that can be run only from the command line.

The issue script crashes on the `Render()` function. So if I run the following script with `pvpython` it will also fail if a display is not configured:

```python
from paraview.simple import *
Sphere()
Show()
Render()

```

This seems to be a decently common question according to google searches, but a lot of the results are at least a few years old so I was curious if there were any updates or additional benchmarks that don’t need the `Render()` function.

Maybe there is a View that I can pass to the `Render()` function?

Things I’ve tried

- use `Interact()` instead of `Render()` [Calling Render Seems to Crash pvpython - #2 by mwestphal](https://discourse.paraview.org/t/calling-render-seems-to-crash-pvpython/6102/2)
- `--force-offscreen-rendering`
- Using `pvbatch` instead of `pvpython`. This could be just inexperience and might work but I couldn’t find any examples of this working.
- `pvpython -m paraview.tests -o /tmp/resultsdir` This worked with a display but crashed without a display [recommended tests/examples to validate HPC installation, especially rendering - #2 by mwestphal](https://discourse.paraview.org/t/recommended-tests-examples-to-validate-hpc-installation-especially-rendering/12048/2)

One person pointed out that headless and off-screen are different. This was helpful. [How to build headless paraview in local? - #8 by mwestphal](https://discourse.paraview.org/t/how-to-build-headless-paraview-in-local/9248/8) however this appears to require code changes with the benchmarks which I was hoping to prevent if possible. I’d rather use the official benchmarks rather than write my own. Especially since I’m far from a Paraview expert.

Does anyone have any thoughts or suggestions on benchmarking without a display? I have a bunch of compute nodes that I’d like to test and don’t want to setup a display on every one of them each time I want to run the benchmark/testing suite. Thanks!

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 21, 2024, 8:11am UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/2 "2024-03-21T08:11:53Z")

</div>

> [@brandonbiggs](#):
>
> One person pointed out that headless and off-screen are different.

You never mention in your post how did you install ParaView but to me, it looks like you are using the binary release of ParaView from [https://www.paraview.org/download/](https://www.paraview.org/download/).

In that page, you may notice the " ParaView Server for Headless Machines " Section, use that, the EGL version if you have a GPU or osmesa version if you dont.

hth

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 21, 2024, 1:25pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/3 "2024-03-21T13:25:44Z")

</div>

> [@mwestphal](#):
>
> [https://www.paraview.org/download/](https://www.paraview.org/download/)

I’ll try that. Thanks Mathieu.

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 21, 2024, 3:21pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/4 "2024-03-21T15:21:08Z")

</div>

So I have a pvserver launched, but I’m not sure how to use it to do headless rendering. `pvpython` has the `-s/--server` flag, so I tried that, but it didn’t seem to change anything.

I did also try via the interactive `pvpython` console. I was able to connect, but I was still getting a segfault.

```python
>>> from paraview.simple import *
>>> Connect("localhost")
Connection (cs://localhost:11111) [2]
>>> Sphere()
<paraview.servermanager.Sphere object at 0x7fafb4bf2610>
>>> Show()
VisRTX 0.1.6, using devices:
 0: Quadro P6000 (Total: 25.6 GB, Available: 25.4 GB)
 1: Quadro P6000 (Total: 25.6 GB, Available: 25.4 GB)
<paraview.servermanager.GeometryRepresentation object at 0x7fafb4e9ebb0>
>>> Render()
error: exception occurred: Segmentation fault

```

I must be missing something here.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 21, 2024, 4:12pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/5 "2024-03-21T16:12:02Z")

</div>

Maybe this issue: [I'm using Ubuntu 22 and ParaView osmesa binary crashes on rendering](https://discourse.paraview.org/t/im-using-ubuntu-22-and-paraview-osmesa-binary-crashes-on-rendering/14046) ?

Are you using the osmesa or EGL version ?

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 21, 2024, 4:17pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/6 "2024-03-21T16:17:51Z")

</div>

```auto
$ /lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.28.

```

I have GPUs and believe I’m using the EGL version.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 22, 2024, 11:07am UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/7 "2024-03-22T11:07:08Z")

</div>

Can you try this:

> [@Recover OpenGL Informations from pvpython](https://discourse.paraview.org/t/recover-opengl-informations-from-pvpython/1536):
>
> The OpenGL informations, visible in Help → About dialog, are not easily recoverable in pvpython yet. Here is how to do it. On ParaView 5.6 and earlier versions: import vtk as VTK openGLInfo=VTK.vtkPVOpenGLInformation() session=servermanager.vtkSMProxyManager.GetProxyManager().GetActiveSession() session.GatherInformation(session.CLIENT, openGLInfo, 0) openGLInfo.GetVendor() openGLInfo.GetVersion() openGLInfo.GetRenderer() openGLInfo.GetCapabilities() On ParaView 5.7.X : openGLInfo=serverman…

Using the EGL binary release I get the following:

> > > ‘NVIDIA Corporation’  
> > > ‘4.6.0 NVIDIA 550.54.14’  
> > > ‘NVIDIA GeForce GTX 1660/PCIe/SSE2’

What do you get ?

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 25, 2024, 4:36pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/8 "2024-03-25T16:36:45Z")

</div>

> [@brandonbiggs](#):
>
> How to build headless paraview in local? - #8 by mwestphal

Looks like we’re running Mesa. I thought we were running EGL since we’ve got GPUs for acceleration. I’ll go back through the notes and try things based on Mesa instead of EGL.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 25, 2024, 4:40pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/9 "2024-03-25T16:40:00Z")

</div>

> [@brandonbiggs](#):
>
> Looks like we’re running Mesa.

What makes you say that ?

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 25, 2024, 4:42pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/10 "2024-03-25T16:42:59Z")

</div>

I ran your commands and I was told it was Mesa 🙂

```auto
>>> from paraview.simple import *
>>> openGLInfo = GetOpenGLInformation()
>>> openGLInfo.GetVendor()
'Mesa'
>>> openGLInfo.GetVersion()
'4.5 (Core Profile) Mesa 23.1.4'
>>> openGLInfo.GetRenderer()
'llvmpipe (LLVM 16.0.6, 256 bits)'

```

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 25, 2024, 4:45pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/11 "2024-03-25T16:45:12Z")

</div>

Then you need to fix that, you are currently not using your GPUs at all.  
I suppose you used pvpython from the EGL binary release ?

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 25, 2024, 4:47pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/12 "2024-03-25T16:47:13Z")

</div>

We’ve been using [VirtualGL](https://wiki.archlinux.org/title/VirtualGL) to intercept paraview and do some acceleration. I’m not totally sure why we haven’t been using the EGL version. I’ll have to ask around.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 25, 2024, 4:51pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/13 "2024-03-25T16:51:42Z")

</div>

> I’ll have to ask around.

Indeed, the title of this thread mentionned “without display”, which does not seem to be the case here.

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 25, 2024, 4:54pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/14 "2024-03-25T16:54:03Z")

</div>

I think I meant headless. I won’t have a graphical display when I run the benchmarks.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [March 25, 2024, 4:55pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/15 "2024-03-25T16:55:23Z")

</div>

> [@brandonbiggs](#):
>
> I won’t have a graphical display when I run the benchmarks.

Yes ? but you use VirtualGL anyway. I’m a bit confused here.

---

<div class="post-metadata">

### Author: ![brandonbiggs](https://discourse.paraview.org/user_avatar/discourse.paraview.org/brandonbiggs/32/13988_2.png) [@brandonbiggs](https://discourse.paraview.org/u/brandonbiggs)
#### Post date: [March 25, 2024, 4:59pm UTC](https://discourse.paraview.org/t/paraview-benchmarks-without-display/14216/16 "2024-03-25T16:59:27Z")

</div>

Sorry for the confusion, I’m starting to put the pieces together as we’ve been talking. I think I understand what you’re saying. I need to go back to the drawing board and see if I can better outline how to do what we want to do. The benchmarks aren’t a very good test if we’re running Mesa without Virtual GL.
