[Paraview] Is VTU File Reading Parallelized?
John Biddiscombe
biddisco at cscs.ch
Fri May 30 10:55:06 EDT 2008
Berk
I foud your question a little confusing, because of phrases like the
following (probably my fault, becausee I wrote UpdateInformation, when I
meant RequestInformation, my bad - as you americans say).
> cannot be set during RequestInformation() because those are requests
> propagated from consumer to producer whereas the RequestInformation()
> is for producers to provide information to their consumers.
When the comsumer request information about the data (e.g. file reader),
it is frequently the case that the file must be opened on all processes,
information extracted and passed back down the pipeline. In many cases,
opening a huge file (on a shared NFS filesystem - yikes), querying the
information about point/cell data, number of cells etc is not necessary
for every node, when later on, node X will be told only to get piece N
anyway.
NB. The paraview GUI ignores the information from all nodes other than
process 0 anyway - so even sending it to the other nodes, seems pointless :)
What I was wondering, is why is UPDATE_PIECE and NUMBER_OF_PIECES not
set in RequestInformation? I've struggled with this for years and never
understood why it is (seemingly deliberately) not set. In most readers,
the file is opened, scanned and information set during
RequestInformation. I have on occasion, sent the information from node 0
to the other nodes using mpi rather than have them open the file
themselves. Often the information depends on the node number and so
lacking this information is strange.
JB
>> Also...Inside UpdateInformation, the number of pieces and piece number are
>> not set, inside UpdateData they are. In my view this is wrong and they
> Just to make sure I understand, you are saying that
> UPDATE_NUMBER_OF_PIECES() and UPDATE_PIECE_NUMBER() are set during the
> RequestUpdateExtent() pass (which is true) and you are asking asking
> why they are not set during RequestInformation() pass. Correct? They
> cannot be set during RequestInformation() because those are requests
> propagated from consumer to producer whereas the RequestInformation()
> is for producers to provide information to their consumers.
> MAXIMUM_NUMBER_OF_PIECES() is set during RequestInformation(). I am
> guessing your use case may be that you want to provide information
> specific to a piece? We have done some work with LANL folks in this
> area. In that work, the pipeline passes look like:
>
> 1. RequestInformation (producers provide _static_ information about
> what is available)
> 2. RequestUpdateExtent (consumers tell the producers what they will be asking)
> 3. RequestUpdateExtentInformation (producers provide _dynamic_ (per
> piece, per time etc.) information
> about what is available)
> 4. Repeat 2 and 3 as many times as necessary
> 5. RequestUpdateData (pipeline executes)
>
> -berk
>
--
John Biddiscombe, email:biddisco @ cscs.ch
http://www.cscs.ch/about/BJohn.php
CSCS, Swiss National Supercomputing Centre | Tel: +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland | Fax: +41 (91) 610.82.82
More information about the ParaView
mailing list