[Paraview-developers] ghost cells in parallel reader

Berk Geveci berk.geveci at kitware.com
Fri Sep 12 09:53:01 EDT 2014


Hi Jean,

You probably won't find a lot of structured data readers that handle pieces
and ghost cells/points directly. Although it is possible to develop them if
you are not happy with the default domain decomposition the pipeline gives
you. To find an example of a reader that supports ghost request, you need
to look at unstructured readers, such as vtkXMLUnstructuredDataReader.

You have 3 choices in dealing with partitioning and ghosts in a structured
reader:

1. Don't deal with piece or extent requests.

2. Set CAN_PRODUCE_SUB_EXTENT and let the pipeline ask the reader extent
using UPDATE_EXTENT. Ghost levels will be handled automatically. The reader
has to only support UPDATE_EXTENT.

3. Set CAN_HANDLE_PIECE_REQUEST. Then deal with a combination of
UPDATE_EXTENT and UPDATE_PIECE_NUMBER / NUMBER_OF_PIECES /
NUMBER_OF_GHOST_LEVELS.

In 3, you still have to support UPDATE_EXTENT because downstream can ask
for a sub-region of the data (such as vtkExtractVOI). However, this
UPDATE_EXTENT will be the same for all MPI ranks - it is up to the reader
to decide how to split it.

On the other hand in 2, each rank with get a subset of the whole
UPDATE_EXTENT with ghost levels factored in.

I hope that this helps.

PS: Please do me a favor and check if what I described here comes across
clearly in here http://www.vtk.org/Wiki/VTK/Parallel_Pipeline. If not, I
need to update that page.

Best,
Best,
-berk

On Thu, Sep 11, 2014 at 3:51 PM, Favre Jean <jfavre at cscs.ch> wrote:

> Hello
>
> I have developed a parallel reader for a custom HDF5 format providing a
> single structured mesh. I am using version 4.2 RC1, i.e. the syntax of the
> new pipeline. It distributes my sub-extents very well and I can see my full
> data.
>
> Things get out of hands (crash) when I try to do a contour with normals,
> i.e. requesting ghosts. My reader sees the request for ghost-level and then
> crash. I have not been able to find the source code of a parallel reader
> where the part handling ghosts is not commented out. I mean they don't
> check
> outInfo->Has(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS()).
> Can you point me to a working reader example?
>
> My understanding is that I am not supposed to create and add the
> vtkGhostLevels array. The pipeline does that on my behalf, right? So when
> the pipeline asks me for a level of ghost cells, I get extents that are
> augmented by +/- 1 in each direction. Is it assuming that I can always
> fulfill the request?
>
> Thanks for any tip on the subject.
>
> Jean/CSCS
>
>
>
> _______________________________________________
> Paraview-developers mailing list
> Paraview-developers at paraview.org
> http://public.kitware.com/mailman/listinfo/paraview-developers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20140912/182f8bd2/attachment.html>


More information about the Paraview-developers mailing list