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

Kalpana Kanthasamy kalpana0611 at gmail.com
Sun Jan 11 04:26:18 EST 2009


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20090111/638f4d9e/attachment.htm>


More information about the ParaView mailing list