<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Dear ParaView developers,<br>
<br>
I'm having trouble to parallelize my ParaView reader plugin. I want to read HDF5 files and the grid is a structured grid. The plugin works perfectly fine if run in serial, and if i run it in parallel the solution is also correct but instead of dividing the
 dataset in x subsets, it reads the whole dataset x times(for each processor 1 time).</p>
<p><br>
</p>
<p>I found the wiki for a structured grid parallel reader (<a href="http://www.paraview.org/Wiki/Writing_ParaView_Readers">http://www.paraview.org/Wiki/Writing_ParaView_Readers</a>) and used it as orientation.<br>
</p>
<p><br>
</p>
<p>My RequestInformation looks like this:</p>
<p><br>
</p>
<p>//Reading basic information</p>
<p>//Reading in the extent from the file<br>
</p>
<p>int extent[6];</p>
<p>//storing the extent in the array </p>
<p>vtkInformation* outInfo=outputVector->GetInformationObject(0);</p>
<p>outInfo->Set(CAN_HANDLE_PIECE_REQUEST(),1);</p>
<p>outInfo ->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),extent,6);<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>RequestData looks like this:</p>
<p><br>
</p>
<p>vtkProcessModule *ParInfo;<br>
vtkInformation *outInfo = outputVector->GetInformationObject(0);<br>
vtkMultiBlockDataSet* multiBlock = vtkMultiBlockDataSet::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));</p>
<p>int subext[6];<br>
outInfo->Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(),subext);</p>
<p>cout<<"Num of Processors = "<<ParInfo->GetNumberOfLocalPartitions()<<endl;<br>
</p>
<p>cout<< "subext from rank"<< ParInfo->GetPartitionId() << " " <<subext[0]<<.......<<.....<< ex[5] <<endl;</p>
<p>//Reading the grid and the data-set<br>
<br>
</p>
<p>Lets say the extent is 50x120x150 and i start the server with<br>
mpirun -np 2 pvs and connecting the client i get the following "output":</p>
<p>Num of Processors = 2<br>
Num of Processors = 2<br>
subext from rank0 0 50 0 120 0 150<br>
subext from rank1 0 50 0 120 0 150<br>
But at the end the Dataset is still visualized correctly.<br>
</p>
<p><br>
</p>
<p>Normally "outInfo->Get(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(),subext);" should produce the sub-extent for the rank or am i wrong?<br>
</p>
<p>What am I doing wrong, or what do I have to do to get the sub-extent?<br>
</p>
<p><br>
</p>
<p>Thank you very much in advance,<br>
Markus Moser</p>
<p><br>
</p>
<p>Markus Moser<br>
Student assistant<br>
</p>
<p>Chair of Fluid Mechanics and Institute of Aerodynamics</p>
<p>Wüllnerstraße 5a<br>
RWTH Aachen University<br>
</p>
<p>52062 Aachen<br>
Germany<br>
<br>
</p>
<p><br>
<br>
<br>
<br>
</p>
</body>
</html>