[Paraview] Off Screen Rendering

Moreland, Kenneth kmorel at sandia.gov
Mon Nov 30 13:20:05 EST 2009


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20091130/4fa8e589/attachment-0001.htm>


More information about the ParaView mailing list