[Paraview] Off Screen Rendering

Moreland, Kenneth kmorel at sandia.gov
Tue Dec 1 08:33:53 EST 2009


In tiled display mode all parallel image compositing goes to the tiled display.  The rendering that happens on the client is local.  Yes, that means that the geometry must be sent to the client.  Generally, the decimated geometry of the interactive LOD is all that is sent (unless the data is really small).  So in a sense, the you see only interactive renders on the client.  You have to look at the tiled display to see the full detail (which is the point of having the tiled display in the first place, right?).  If even the decimated geometry is too big (which can happen if the rendering server has lots of processes), then the client will just show a bounding box in proxy of the actual geometry.

-Ken
________________________________________
From: Paul Melis [Paul.Melis at sara.nl]
Sent: Tuesday, December 01, 2009 4:51 AM
To: Moreland, Kenneth; chew ping; weaponfire2005 at 163.com
Cc: paraview
Subject: RE: [Paraview] Off Screen Rendering

Hi Ken,

How does Paraview's tiled panel display support fit into this? Am I right in assuming that in that case (without offscreen-rendering) the pvservers send image output to the client, where a  composited image is displayed? Or is the client also doing local rendering of geometry sent to it from the servers?

Regards,
Paul

________________________________________
From: paraview-bounces at paraview.org [paraview-bounces at paraview.org] On Behalf Of Moreland, Kenneth [kmorel at sandia.gov]
Sent: Monday, November 30, 2009 7:20 PM
To: chew ping; weaponfire2005 at 163.com
Cc: paraview
Subject: Re: [Paraview] Off Screen Rendering

That is correct with two clarifications:

The “with ―use-offscreen-rendering” explanation is only correct for when ParaView is compiled with OSMesa.

The “without ―use-offscreen-rendering” behavior only happens because the servers try to open X windows and fail.

-Ken


On 11/25/09 11:50 PM, "chew ping" <lcp81um at msn.com> wrote:


Dear all,

so based on the timer log results that i collected, what i read about offscreen-rendering and the explanation below, can i conclude the followings? someone pls correct me if i'm wrong!

with --use-offscreen-rendering

 *   X windows are disabled on all server processes
 *   all server processes render the geometry locally
 *   then each server processes sends the image to the client for compositing
 *   there's NO data gathering to process 0, meaning the master doesn't collect all images from each processes for composting, then only send it to the client for rendering
 *   that's why --use-offscreen-rendering is faster


without --use-offscreen-rendering

 *   X windows are enabled on all server processes
 *   all server processes the raw data, then send all geometry to process 0
 *   process 0 gather all geometry then send them to the client to render
 *   the client does all the rendering job
 *   that's why without --use-offscreen-rendering is slower


any help / reply is highly appreciated

Best Regards,
chewping


________________________________
Date: Fri, 20 Nov 2009 10:57:25 +0800
From: weaponfire2005 at 163.com
To: lcp81um at msn.com
CC: paraview at paraview.org
Subject: Re:[Paraview] Off Screen Rendering

hi chew ping:
  The Problem:"Display is not accessible on the server side. Remote rendering will be disabled.", it means that not all server start up X Server, so the server will process the raw data and send all geometry to the client to render.
  The client do all the rendering job, that's the reason why case 2 is so slow, I think.
  When you use off screen, all server processes render the geometry locally , send image to client to composite, so case 1 much faster than case 2.
  I hope this can help you, for I got the same problem before. Good luck.





在2009-11-20,"chew ping" <lcp81um at msn.com> 写道:
Dear all,

i'm doing parallel rendering using 2 machines (np4), i notice an obvious difference between using offscreen-rendering (faster) and without offscreen-rendering (much slower). i realize this from the timer log:


Case 1: with offscreen-rendering
----------------------------------------------------------

Local Process
Still Render, 0.666444 seconds
Execute vtkMPIMoveData id: 519, 0.000199 seconds
Execute vtkPolyDataMapper id: 311, 0.000106 seconds
 

Server, Process 0
Execute vtkFileSeriesReader id: 238, 0.645881 seconds
Execute vtkPVGeometryFilter id: 305, 0.005891 seconds
Execute vtkPVCacheKeeper id: 516, 7.8e-05 seconds
Execute vtkMPIMoveData id: 519, 0.000212 seconds
Execute vtkOrderedCompositeDistributor , 0.000152 seconds
Execute vtkPolyDataMapper id: 311 , 0.000274 seconds

Server, Process 1
Execute vtkFileSeriesReader id: 238, 0.000275 seconds
Execute vtkPVGeometryFilter id: 305, 0.005299 seconds
Execute vtkPVCacheKeeper id: 516, 7.7e-05 seconds
Execute vtkMPIMoveData id: 519, 0.000147 seconds
Execute vtkOrderedCompositeDistributor , 0.000117 seconds
Execute vtkPolyDataMapper id: 311, 9.9e-05 seconds

Server, Process 2
Execute vtkFileSeriesReader id: 238, 0.000258 seconds
Execute vtkPVGeometryFilter id: 305, 0.004765 seconds
Execute vtkPVCacheKeeper id: 516, 7.7e-05 seconds
Execute vtkMPIMoveData id: 519, 0.000147 seconds
Execute vtkOrderedCompositeDistributor , 0.000111 seconds
Execute vtkPolyDataMapper id: 311, 9.5e-05 seconds

Server, Process 3
Execute vtkFileSeriesReader id: 238, 0.000352 seconds
Execute vtkPVGeometryFilter id: 305, 0.005351 seconds
Execute vtkPVCacheKeeper id: 516, 7.7e-05 seconds
Execute vtkMPIMoveData id: 519, 0.00016 8 seconds
Execute vtkOrderedCompositeDistributor , 0.000111 seconds
Execute vtkPolyDataMapper id: 311, 0.000108 seconds

---------------------------------------------------------------



Case 2: without offscreen-rendering
---------------------------------------------------------------

Local Process
Still Render, 4.86495 seconds
Execute vtkMPIMoveData id: 520, 2.81566 seconds
Execute vtkPolyDataMapper id: 312, 0.00012 seconds
Execute vtkPolyDataMapper id: 148, 7.6e-05 seconds 
 

Server, Process 0
Execute vtkFileSeriesReader id: 239, 0.659133 seconds
Execute vtkPVGeometryFilter id: 306, 0.026125 seconds
Execute vtkPVCacheKeeper id: 517, 7.8e-05 seconds
Execute vtkMPIMoveData id: 520, 2.53214 seconds
Dataserver gathering to 0, 1.98166 seconds
Dataserver sending to client, 0.549715 seconds
Execute vtkOrderedCompositeDistributor , 0.0 00175 seconds

Server, Process 1
Execute vtkFileSeriesReader id: 239, 0.000446 seconds
Execute vtkPVGeometryFilter id: 306, 0.026313 seconds
Execute vtkPVCacheKeeper id: 517, 7.3e-05 seconds
Execute vtkMPIMoveData id: 520, 0.232435 seconds
Dataserver gathering to 0, 0.232117 seconds
Execute vtkOrderedCompositeDistributor , 0.00012 seconds

Server, Process 2
Execute vtkFileSeriesReader id: 239, 0.000519 seconds
Execute vtkPVGeometryFilter id: 306, 0.026063 seconds
Execute vtkPVCacheKeeper id: 517, 7e-05 seconds
Execute vtkMPIMoveData id: 520, 1.31373 seconds
Dataserver gathering to 0, 1.31341 seconds
Execute vtkOrderedCompositeDistributor , 0.000119 seconds

Server, Process 3
Execute vtkFileSeriesReader id: 239, 0.000459 seconds
Execute vtkPVGeometryFilter id: 306, 0.004905 seconds
Execute vtkPVCacheKeeper id: 517, 6.9e-05 seconds
Execute vtkMPIMoveData id: 520, 0.764289 seconds
Dataserver  gathering to 0, 0.740679 seconds
Execute vtkOrderedCompositeDistributor , 0.000136 seconds

--------------------------------------------------------------------


Unlike Case 2, Case 1 does not show any 'Dataserver gathering to 0' or 'Dataserver sending to client'
so i guess what makes Case 2 slower is because the vtkMPIMoveData is doing extra thing to move data amongst processes

btw, whenever i run it without -offscreen-rendering, i get this message:
"Display is not accessible on the server side. Remote rendering will be disabled."

based on what i read from paraview tutorial, what i understand is that the parallel rendering algorithm allows each process to independently render its partition of the geometry and then composites the partial images together to form the final image. Is this what happened in Case 2 because it has 'Datas erver gathering to 0' or 'Dataserver sending to client'?

actually what i dont understand is why case 2 is much slower than case 1?
is it because different 'things' are going on in the processes when offscreen-rendering is on/off?


any help / reply is highly appreciated

Best Regards,
chewping













________________________________
看陆川杨幂新片《琴棋书画》,品网易3D国韵网游《天下贰》 <http://allyes.nie.163.com/main/adfclick?db=afanie&bid=1260,614,23&cid=148,4,1&sid=1357&show=ignore&url=http://tx2.163.com/fab.html>


   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel at sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel



More information about the ParaView mailing list