[Paraview] Confused over the term sort first and sort last rendering modes

Moreland, Kenneth kmorel at sandia.gov
Mon Jan 12 11:30:12 EST 2009


ParaView implements sort-last parallel rendering.  If the amount of geometry you are rendering is small, ParaView also has the ability to collect the geometry and render it wherever it is being displayed.  You could call that second mode sort-last rendering, but it is missing the screen decomposition that is usually characteristic of a true sort-first parallel rendering implementation.  The rendering mode ParaView uses is controlled by the "Remote Render Threshold" setting.

I'd rather not get into a more detailed description of sort-first/last parallel rendering or ParaView's implementation.  There are many papers on the subject.  A good place to start is the following, which outlines the ParaView client/server rendering framework:

Andy Cedilnik, Berk Geveci, Kenneth Moreland, James Ahrens, and Jean Favre. "Remote Large Data Visualization in the ParaView Framework." In Eurographics Parallel Graphics and Visualization 2006, pg. 163-170, May 2006.

You can get a copy of this paper from my website:

http://www.cs.unm.edu/~kmorel/documents/EGPGV2006Paper.pdf

-Ken


On 1/11/09 2:26 AM, "Kalpana Kanthasamy" <kalpana0611 at gmail.com> wrote:

Hie everyone,

I have managed to run my paraview on a heterogeneous cluster. I have several questions, I ran the application on 4 nodes consisting of a quad core and three dual cores. I included display as an option in my command, but there were no display showed. However, when I ran paraview by using mpirun -np 4, there were display and each portion of my dataset appeared on all the 3 dual core nodes, the final composited image appeared on the master node, the quad core. There was no display when I used mpirun -np 10, but the final image did appear on my master node and it was load balanced, and each node shared the processing load, thus I am just assuming that the display is just a command and it does not matter whether it is included or not as the results are the same, the end results shows the each process does its work.

I am however, confused over my rendering mode.

Am I running my paraview in a sort first or sort last rendering mode.
According to paraview's wiki page,

a) sort first
Sort first (collection): Small objects can be collected to the first node and rendered locally. In this mode, the polygons are collected only when the source generating them is modified. Although this collection might take time, it is done only once and rendering is fast.

b) Sort last (distributed rendering): In this mode, first, each process renders their scene, then these scenes are composited using the depth buffer. This is done every render. Although this is slower for smaller datasets, it is the only scalable solution when the dataset become large.


According to another wiki page, http://en.wikipedia.org/wiki/Parallel_rendering
a) Sort-first rendering decomposes the final view in screen space, that is, each contributor renders a 2D tile of the final view.[1] This mode has a limited scalability due to the parallel overhead caused by objects rendered on multiple tiles.
The image to the right[image missing] shows an example of sort-first rendering on a video wall. Each computer in the video wall renders a portion of the viewing volume, or viewing frustum, and the final image is the summation of the images on the monitors that make up the video wall. The speedup comes from the fact that graphics libraries (OpenGL for example) will clip away pixels that would appear outside of the viewing volume. This happens very early in the graphics pipeline, which accelerates the rendering process by eliminating the unneeded rasterization and post-processing on primitives that will not appear anyway.
-  I don't really understand this, but the Each computer in the video wall renders a portion of the viewing volume seems to be like what I do

b) Sort-last rendering on the other hand decomposes the rendered database across all rendering units, and recombines the partially rendered frames. This modes scales the rendering very well, but the recomposition step is expensive due to the amount of pixel data processed during recomposition.
The image to the right[image missing] shows an example of sort-last rendering. The computer in the top left corner is the master computer. This means it is responsible for receiving the images created by the other computers, and then compositing them into the final image, which it displays on its own monitor.

I am coming to a conclusion that I am using sort last rendering,
I have included my log file here

Local Process
Execute vtkMPIMoveData id: 56525, 34.3637 seconds
Still Render, 13.1748 seconds
Still Render, 13.7901 seconds
Execute vtkMPIMoveData id: 56886, 39.0753 seconds
Still Render, 12.9629 seconds



Server, Process 0
Execute vtkXMLUnstructuredGridReader id, 17.8932 seconds
Execute vtkPVGeometryFilter id: 56413, 1.05276 seconds
Execute vtkMPIMoveData id: 56525, 29.4772 seconds
Dataserver gathering to 0, 9.52857 seconds
Dataserver sending to client, 19.7425 seconds
Execute vtkPVUpdateSuppressor id: 56540, 6.1e-05 seconds
Execute vtkOrderedCompositeDistributor , 5.5e-05 seconds


Server, Process 1
Execute vtkXMLUnstructuredGridReader id, 0.024491 seconds
Execute vtkPVGeometryFilter id: 56413, 1.05286 seconds
Execute vtkMPIMoveData id: 56525, 2.42811 seconds
Dataserver gathering to 0, 2.42799 seconds
Execute vtkPVUpdateSuppressor id: 56540, 3.9e-05 seconds
Execute vtkOrderedCompositeDistributor , 3.2e-05 seconds


- Can someone guide me please.



   ****      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/20090112/026c33f4/attachment.htm>


More information about the ParaView mailing list