[Paraview] Parallel XDMF Reader and Distributed Parallel Render issues
weaponfire2005
weaponfire2005 at 163.com
Tue Aug 25 10:08:55 EDT 2009
Hi all:
I got some questions when I visualized my datasets (data format is HDF5, using xdmf metadata file to organize). My datasets consist of 30 HDF5 data files, and all files stored in one directory. I wrote a xdmf file(.xmf) to organize these raw data. The .xmf file’s content as follows:
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
<Xdmf>
<Domain>
<Grid Name="BX0" GridType="Uniform">
<Topology TopologyType="3DCoRectMesh" Dimensions="50 80 800"/>
<Geometry GeometryType="ORIGIN_DXDYDZ">
<DataItem Name="Origin" DataType="Float" Dimensions="3" Format="XML">
0 0 0
</DataItem>
<DataItem Name="Spacing" DataType="Float" Dimensions="3" Format="XML">
1 1 1
</DataItem>
</Geometry>
<Attribute Name="Scalar" Type="Scalar" Center="Node">
<DataItem Name="Points" Dimensions="50 80 800" Format="HDF">
fields-10.000-0:/Fields/bx
</DataItem>
</Attribute>
</Grid>
……# the other 29 Grids are the same with the first Grid, except the file name # and the coordinate parameters
</Domain>
</Xdmf>
The first question is: Should I use “Data Collection” or other structures like “Tree”, “Subset” to organize the Grids? Does the organization of Grids affect the performance of vtkXdmfReader? I also want to know whether the class vtkXdmfReader read the raw HDF5 data in parallel when I run ParaView in parallel mode, and if reading is in parallel, how does it work in detail?
I run paraview on an cluster with 8 nodes, and I type the command “mpirun –np 8 ./pvserver” on the first node to start the server, which allocate each node one server process. Then I also start paraview on the first node using “./paraview”, and connect to the server.
I have read << The ParaView Guide>>, and it says that when paraview run in the Client/Server mode, render server and data server will all run on the server end. But when running the Client/Server mode on my cluster, it seems that only the data server is distributed working on the 8 nodes and the render server does not work(only Collection but not sort last render). Here are some time logs recording the whole process.
Local Process
Still Render, 0.022987 seconds
Execute vtkMPIMoveData id: 1563, 0.019109 seconds
Still Render, 82.7161 seconds
Execute vtkMPIMoveData id: 1563, 0.014251 seconds
Execute vtkMPIMoveData id: 1843, 76.0409 seconds
Still Render, 2.77689 seconds
Still Render, 2.77948 seconds
Server, Process 0
Execute vtkXdmfReader id: 1303, 0.893424 seconds
Execute vtkPVGeometryFilter id: 1394, 0.024707 seconds
Execute vtkMPIMoveData id: 1563, 0.011097 seconds
Execute vtkContourFilter id: 1711, 5.41831 seconds
………………# also the vtkContourFilter time
Execute vtkContourFilter id: 1711, 0.189248 seconds
Execute vtkPVGeometryFilter id: 1729, 2.45381 seconds
Execute vtkMPIMoveData id: 1843, 61.2669 seconds
Dataserver gathering to 0, 39.0038 seconds
Dataserver sending to client, 22.2626 seconds
Server, Process 1
Execute vtkXdmfReader id: 1303, 0.884488 seconds
Execute vtkPVGeometryFilter id: 1394, 0.026233 seconds
Execute vtkContourFilter id: 1711, 5.40355 seconds
………………# also the vtkContourFilter time
Execute vtkContourFilter id: 1711, 0.173221 seconds
Execute vtkPVGeometryFilter id: 1729, 2.41831 seconds
Execute vtkMPIMoveData id: 1843, 3.25894 seconds
Dataserver gathering to 0, 3.25879 seconds
Server, Process 2
………………………
………………………
Server, Process 7
………………
#the other Server process are same as process 1
From the time log, I only see the time record related to data server, but there are not render server. It seems that all render works are just done on the Local Process, and the other processes only take responsibility for raw data processing, producing geometry and transferring geometry to Local Process.
In additional, I tried to run paraview in Client/Server mode respectively on 1 node, 4 nodes and 8 nodes. I found that the more I use the nodes, the longer the render time is. It depressed me seriously.
Do I run the Client/Server mode correctly? Why the performance continued to decline when more nodes joined to the server? Is it related to the “Setting->Render View->Server->Remote Render Threshold”? But my data is large(about 4GB), and even I cancel this Threshold, there are no improvement for the render time. Could you tell me how to make paraview render in distributed parallel?
Thank you for your helpJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20090825/266c4da9/attachment-0001.htm>
More information about the ParaView
mailing list