<div>Hie everyone,</div>
<div> </div>
<div>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.</div>
<div> </div>
<div>I am however, confused over my rendering mode.</div>
<div> </div>
<div>Am I running my paraview in a sort first or sort last rendering mode.</div>
<div>According to paraview's wiki page,</div>
<div> </div>
<div>a) sort first</div>
<div>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.</div>
<div> </div>
<div>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.</div>
<div> </div>
<div> </div>
<div>According to another wiki page, <a href="http://en.wikipedia.org/wiki/Parallel_rendering">http://en.wikipedia.org/wiki/Parallel_rendering</a></div>
<div>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.</div>
<div></div>
<div>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.</div>
<div></div>
<div>- 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</div>
<div> </div>
<div>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.</div>
<div></div>
<div>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.</div>
<div></div>
<div> </div>
<div>I am coming to a conclusion that I am using sort last rendering,</div>
<div>I have included my log file here</div>
<div> </div>
<div></div>
<div>Local Process</div>
<div></div>
<div>Execute vtkMPIMoveData id: 56525, 34.3637 seconds</div>
<div></div>
<div>Still Render, 13.1748 seconds</div>
<div></div>
<div>Still Render, 13.7901 seconds</div>
<div></div>
<div>Execute vtkMPIMoveData id: 56886, 39.0753 seconds</div>
<div></div>
<div>Still Render, 12.9629 seconds</div>
<div></div>
<div> </div>
<div></div>
<div> </div>
<div></div>
<div> </div>
<div></div>
<div>Server, Process 0</div>
<div></div>
<div>Execute vtkXMLUnstructuredGridReader id, 17.8932 seconds</div>
<div></div>
<div>Execute vtkPVGeometryFilter id: 56413, 1.05276 seconds</div>
<div></div>
<div>Execute vtkMPIMoveData id: 56525, 29.4772 seconds</div>
<div></div>
<div>Dataserver gathering to 0, 9.52857 seconds</div>
<div></div>
<div>Dataserver sending to client, 19.7425 seconds</div>
<div></div>
<div>Execute vtkPVUpdateSuppressor id: 56540, 6.1e-05 seconds</div>
<div></div>
<div>Execute vtkOrderedCompositeDistributor , 5.5e-05 seconds</div>
<div></div>
<div> </div>
<div></div>
<div> </div>
<div></div>
<div>Server, Process 1</div>
<div></div>
<div>Execute vtkXMLUnstructuredGridReader id, 0.024491 seconds</div>
<div></div>
<div>Execute vtkPVGeometryFilter id: 56413, 1.05286 seconds</div>
<div></div>
<div>Execute vtkMPIMoveData id: 56525, 2.42811 seconds</div>
<div></div>
<div>Dataserver gathering to 0, 2.42799 seconds</div>
<div></div>
<div>Execute vtkPVUpdateSuppressor id: 56540, 3.9e-05 seconds</div>
<div></div>
<div>Execute vtkOrderedCompositeDistributor , 3.2e-05 seconds</div>
<div></div>
<div> </div>
<div></div>
<div> </div>
<div>- Can someone guide me please.</div>