[Paraview] Parallel Python Programmable Filters and Data Segmentation

Jesus Pulido jpulido at ucdavis.edu
Fri Aug 26 11:33:26 EDT 2011


Hello,

I am working on various python programmable filters and have gotten them
working in parallel but I've ran into some problems and have questions on
some of the functionality. I am working with (structured) vtkImageData
loaded in from a .pvti file (4 pieces) and will want to ideally output
vtkUnstructuredData for some of my filters, and vtkImageData for others. I
am not sure if Paraview is supposed to segment the input/output data for you
but what I've found out is that it will depending on the set output data
type.

If you choose vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid,
vtkImageData, and vtkUniformGrid, and print the input extents for each
processor that's running the filter, the input will be that of the entire
dataset. (and therefore each pvserver will read in the entire dataset into
memory!)

If you choose vtkUnstructuredGrid or vtkMultiBlockData, then the input will
be segmented into pieces and printing the extents of the data for each
processor running the filter will show the input segmented.

Now, my question is if this behavior is normal/expected? If it is, is there
a filter that I may call within my filter to segment my data to only include
piece X our of N processors available?

Regarding the output data, I'm assuming each processor is expecting a
certain extent of the data and Paraview will combine the output of all
processors into one object, but when I output the "output" extents (out =
self.GetOutput()), the extents are set to the entire dataset size by
default.

I've also found a bug within the datatypes in which inputs are segmented.
When a filter is initially added and applied to a dataset, outputting the
extents of the inputs shows that each processor is loading the entire extent
of the data. If you have a dataset with multiple timesteps or are able to
force Paraview to re-read the dataset with the filter already set, you will
see that the "correct" segmented extents are now passed through to the
filter for each core.

Another, perhaps bug, is that if daisy-chain two python programmable
filters, the first one being one of the two datatypes that segment the data,
and then the second being one that doesnt segment the data, the inputs for
the first filter will no longer be segmented anymore.

Jesus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110826/d5ac709e/attachment.htm>


More information about the ParaView mailing list