# pvbatch with osmesa runs slower

**URL:** https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283
**Category:** ParaView Support
**Created:** [July 23, 2019, 4:28pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283 "2019-07-23T16:28:06Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![hconel](https://discourse.paraview.org/user_avatar/discourse.paraview.org/hconel/32/1782_2.png) [@hconel](https://discourse.paraview.org/u/hconel)
#### Post date: [July 23, 2019, 4:28pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283/1 "2019-07-23T16:28:06Z")

</div>

Hello,  
I’m post-processing my OpenFOAM results on a remote server.  
Option A: I run pvserver that is built with OpenFOAM on remote server, connect from my local machine and save animation (via on-screen rendering). Both server and client runs 5.4.  
Option B: I directly parallel run pvbatch which I have downloaded with osmesa. This is version 5.6.  
Both are on the same number of cores, but option B runs significantly slower. Is it something related to version, or CPU/GPU?  
Thanks in advance.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [July 23, 2019, 9:53pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283/2 "2019-07-23T21:53:40Z")

</div>

As you perhaps know, OSMesa is not going to use your GPU, so there is a good chance that it is slower than Option A because of that. In Option A, are you doing remote rendering on the server?

---

<div class="post-metadata">

### Author: ![Dave\_DeMarle](https://discourse.paraview.org/user_avatar/discourse.paraview.org/dave_demarle/32/27_2.png) [@Dave\_DeMarle](https://discourse.paraview.org/u/Dave_DeMarle)
#### Post date: [July 25, 2019, 2:03pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283/3 "2019-07-25T14:03:26Z")

</div>

To expand on what Cory said, check the preferences/settings under the Render tab and look at the client vs remote rendering threshold setting. If the visible geometry size is less than the threshold, the server ships the geometry to the client and the client side does the rendering. Otherwise the server side does the job and ships images to the client instead.

---

<div class="post-metadata">

### Author: ![hconel](https://discourse.paraview.org/user_avatar/discourse.paraview.org/hconel/32/1782_2.png) [@hconel](https://discourse.paraview.org/u/hconel)
#### Post date: [August 24, 2019, 4:01pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283/4 "2019-08-24T16:01:50Z")

</div>

Hello, sorry for the late reply.  
In option A, as far as I know, I am not doing the rendering on my local machine. Because, during the rendering process, black windows are launched up on my local machine, which are as many as the number of processes.  
I am looking for a method to do the rendering on the remote server. But we do not have GPU on the nodes, only GPU is available on the head node. What I understand from the [wiki page](https://www.paraview.org/Wiki/Setting_up_a_ParaView_Server) is, instead of running pvserver on a node, I should run pvrenderserver on the headnode and pvdataserver on a node, separately. Besides the fact that there are no guidelines on the wiki page on how to run them separately, I see that that is not very efficient.  
So for now, my best bet is to run calculations on the server via job submission, but also during the calculation, do the rendering on my local machine. Is this possible?  
Thanks!

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [September 25, 2019, 8:34pm UTC](https://discourse.paraview.org/t/pvbatch-with-osmesa-runs-slower/2283/5 "2019-09-25T20:34:30Z")

</div>

> [@hconel](#):
>
> What I understand from the [wiki page](https://www.paraview.org/Wiki/Setting_up_a_ParaView_Server) is, instead of running pvserver on a node, I should run pvrenderserver on the headnode and pvdataserver on a node, separately. Besides the fact that there are no guidelines on the wiki page on how to run them separately, I see that that is not very efficient.

I would not advise using the separate `pvrenderserver` and `pvdataserver`. If there are no GPUs on your compute nodes, then the osmesa version of `pvbatch` is your best bet.

> [@hconel](#):
>
> So for now, my best bet is to run calculations on the server via job submission, but also during the calculation, do the rendering on my local machine. Is this possible?

I assume by running calculations you mean running something that is producing the data. If that is the case, then you can periodically select the _File_ → _Reload Files_ menu item to load the latest data, then save an image of the updated data. This is likely to be no fun for you, however.

What you are describing is a perfect use case for ParaView’s Catalyst feature for _in situ_ visualization. See [https://www.paraview.org/in-situ/](https://www.paraview.org/in-situ/) for more details.
