[Paraview] How to create a parallele reader for paraview ?
Sebastien Jourdain
jourdain at artenum.com
Thu Jan 17 10:39:45 EST 2008
Thank's a lot Ken,
you pretty well answear at all my questions...
And thanks for the MAXIMUM_NUMBER_OF_PIECES() that I forgot... ;-)
Regards,
Seb
Moreland, Kenneth a écrit :
>> Context:
>> - We suppose that Paraview is deployed over a cluster of "n" nodes
>>
>> 1) The user want to read a file. (click and select files in the menu)
>> 2) Paraview create "n" instance of the reader. One instance on each
>> cluster node.
>> 3) Paraview will apply the same data processing behind each reader by
>> setting in vtkInformation of each specific request
>> - vtkStreamingDemandDrivenPipeline::UPDATE_PIECE_NUMBER() equal
>>
> to
>
>> the MPI_ProcessId
>> - and vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_PIECES()
>> equal to the total number of nodes. ("n" for us)
>> - and something about GHOST_LEVEL depending on the need of the
>> filter involved in the pipeline.
>>
>
> That's pretty much it. The only minor thing missing is that the reader
> should set vtkStreamingDemandDrivenPipeline::MAXIMUM_NUMBER_OF_PIECES()
> in the output information during the RequestInformation pipeline phase.
> You usually set this to -1 to signal that you support any number of
> pieces.
>
>
>> If so, this mean that each reader is reading indepently the same file
>> and each one is reading and extracting its requesting part ?
>> The reader don't need to know anything about MPI. Paraview manage
>> everything.
>>
>
> That's the original idea. In theory, it should not matter whether you
> are part of an MPI job or some serial process is streaming data. In
> practice, however, it can make a big difference. Thus, it is becoming
> quite common for reader to be "MPI-aware" so that they may coordinate
> the reads.
>
>
>> This also mean that the file must be available on the same path on
>>
> each
>
>> node of the cluster ?
>>
>
> Most people design their clusters to have a file system that mounted on
> all the nodes and thus the files will be accessible everywhere. It
> sounds like you have a file accessible to node 0 only and want to stream
> data from there to the other nodes. That should work OK if that's how
> you design your reader. Just be aware that the built in readers will
> not work that way.
>
>
>> I suppose that the reader will have to provide the requested level of
>> ghost cell ?
>>
>
> Ideally, the reader will produce ghost cells, and the readers of
> structured data typically do because they are easy to find. However, I
> think all the unstructured data readers (those that ready vtkPolyData or
> vtkUnstructuredGrid) do not produce ghost cells unless they are
> conveniently accessible. It is usually difficult to code and can take
> longer than a user is willing to wait. In that case, ignore the ghost
> cell requests. Use the D3 filter if you need to generate them.
>
>
>> Which is unfortunately not the behaviour that I'm looking for... ;-)
>> I will look at the vtkSpyPlotReader and will come back to you if I
>>
> have
>
>> more question.
>>
>
> Although it does not fit exactly within what was originally intended
> with the parallel VTK parallel readers, I think you should just try to
> do what you originally wanted. Nothing you have said so far leads me to
> believe that it will not work.
>
> -Ken
>
>
> .
>
>
More information about the ParaView
mailing list