<div dir="ltr">Hi Jean,<div><br></div><div>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.</div><div><br></div><div>You have 3 choices in dealing with partitioning and ghosts in a structured reader:</div><div><br></div><div>1. Don't deal with piece or extent requests.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>On the other hand in 2, each rank with get a subset of the whole UPDATE_EXTENT with ghost levels factored in.</div><div><br></div><div>I hope that this helps.</div><div><br></div><div>PS: Please do me a favor and check if what I described here comes across clearly in here <a href="http://www.vtk.org/Wiki/VTK/Parallel_Pipeline">http://www.vtk.org/Wiki/VTK/Parallel_Pipeline</a>. If not, I need to update that page.</div><div><br></div><div>Best,</div><div>Best,</div><div>-berk</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 11, 2014 at 3:51 PM, Favre  Jean <span dir="ltr"><<a href="mailto:jfavre@cscs.ch" target="_blank">jfavre@cscs.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello<br>
<br>
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.<br>
<br>
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?<br>
<br>
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?<br>
<br>
Thanks for any tip on the subject.<br>
<br>
Jean/CSCS<br>
<br>
<br>
<br>
_______________________________________________<br>
Paraview-developers mailing list<br>
<a href="mailto:Paraview-developers@paraview.org">Paraview-developers@paraview.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/paraview-developers" target="_blank">http://public.kitware.com/mailman/listinfo/paraview-developers</a><br>
</blockquote></div><br></div>