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
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to