[Paraview] PV 3.12.0 coprocessing problem when using multiple filters

Andy Bauer andy.bauer at kitware.com
Tue Dec 6 16:05:57 EST 2011


Hi Takuya,

Sorry for the slow response but I finally did verify this problem.  Your
change also fixes it.  I'm not that familiar with vtkPVSessionCore so I'll
need to talk to some other people to make sure that it's the proper fix and
if not, what is the proper fix.  I'll email again when it's been fixed.

Thanks,
Andy

On Mon, Nov 14, 2011 at 9:32 AM, Takuya OSHIMA
<oshima at eng.niigata-u.ac.jp>wrote:

> Hi Andy,
>
> I may be wrong but I have a feeling that the collected data
> information in process 0 should be redistributed to other processes
> since adding a print statement for
> Slice1.GetDataInformation().GetNumberOfPoints() prints for each
> process the number of points expected from the hierarchical collection
> mechanism of vtkPVSessionCore::CollectInformation().
>
> I am not sure if this is the right place and thing but if I add the
> following code to vtkPVSessionCore::CollectInformation() the slice
> filter works exactly as you stated ("it just needs to go through one
> of the process's grid domain such that the global number of points and
> cells is greater than 0").
>
> Takuya OSHIMA, Ph.D.
> Faculty of Engineering, Niigata University
> 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
>
> --- ParaView-3.12.0/ParaViewCore/ServerImplementation/vtkPVSessionCore.cxx
>      2011-11-09 05:56:18.000000000 +0900
> +++
> ParaView-3.12.0.new/ParaViewCore/ServerImplementation/vtkPVSessionCore.cxx
>  2011-11-14 23:17:32.000000000 +0900
> @@ -825,6 +825,33 @@
>       controller->Send(&len, 1, parent, ROOT_SATELLITE_INFO_TAG);
>       }
>     }
> +
> +  if (this->SymmetricMPIMode)
> +    {
> +    if (myid == 0)
> +      {
> +      vtkClientServerStream css;
> +      info->CopyToStream(&css);
> +      const unsigned char* data;
> +      size_t length;
> +      css.GetData(&data, &length);
> +      int len = static_cast<int>(length);
> +      controller->Broadcast(&len, 1, 0);
> +      controller->Broadcast(const_cast<unsigned char *>(data), len, 0);
> +      }
> +    else
> +      {
> +      int len;
> +      controller->Broadcast(&len, 1, 0);
> +      unsigned char *data = new unsigned char[len];
> +      controller->Broadcast(data, len, 0);
> +      vtkClientServerStream stream;
> +      stream.SetData(data, len);
> +      info->CopyFromStream(&stream);
> +      delete [] data;
> +      }
> +    }
> +
>   return true;
>  }
>
>  //----------------------------------------------------------------------------
>
> From: Andy Bauer <andy.bauer at kitware.com>
> Subject: Re: [Paraview] PV 3.12.0 coprocessing problem when using multiple
> filters
> Date: Sun, 13 Nov 2011 14:18:14 -0500
>
> > I hope that's not the case that the slice has to go through each
> process's
> > grid domain.  I think it just needs to go through one of the process's
> grid
> > domain such that the global number of points and cells is greater than 0.
> > I will check on this though.
> >
> > Andy
> >
> > On Sat, Nov 12, 2011 at 3:57 AM, Takuya OSHIMA
> > <oshima at eng.niigata-u.ac.jp>wrote:
> >
> >> Thanks for all the input guys. Indeed Pat's tip did the trick, in my
> case:
> >>
> >>    if Slice1.GetDataInformation().GetNumberOfPoints():
> >>        DataRepresentation2.ColorArrayName = 'p'
> >>
> >> I am still new to coprocessing so I am not getting things right but
> >> here is my deduction: I am running my simulation code in parallel with
> >> 8 processes with one cell thickness of ghost layers. Slice1 does
> >> intersect the domain, but not all of parallel decomposed
> >> subdomains. Hence the error is issued for the processes that have no
> >> slice data.
> >>
> >> Meanwhile I noticed that the slice in oneSlice.py just have happened
> >> to locate exactly on interprocessor boundaries and intersected all of
> >> parallel decomposed subdomains at the ghost layers. That explains why
> >> the script worked without error.
> >>
> >> Takuya OSHIMA, Ph.D.
> >> Faculty of Engineering, Niigata University
> >> 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
> >>
> >> From: pat marion <pat.marion at kitware.com>
> >> Subject: Re: [Paraview] PV 3.12.0 coprocessing problem when using
> multiple
> >> filters
> >> Date: Fri, 11 Nov 2011 20:08:54 -0500
> >>
> >> > That's right, if the output has no point or cell data, then assigning
> the
> >> > ColorArrayName property will throw an exception.  It's kind of an
> >> annoying
> >> > behavior.  So I'll work around this by writing code such as:
> >> >
> >> > if mySlice.GetDataInformation().GetNumberOfPoints():
> >> >     rep.ColorArrayName='p'
> >> >
> >> >
> >> > Pat
> >> >
> >> > On Fri, Nov 11, 2011 at 12:39 PM, Andy Bauer <andy.bauer at kitware.com>
> >> wrote:
> >> >
> >> >> Another thing to check is if there are any cells in the output from
> the
> >> >> second slice filter.  In the ParaView GUI, i started with the
> mandelbrot
> >> >> source and then created a slice filter that didn't intersect the
> domain.
> >> >> After that there wasn't any point or cell data in the output.
> >> >>
> >> >> Andy
> >> >>
> >> >>
> >> >> 2011/11/11 Takuya OSHIMA <oshima at eng.niigata-u.ac.jp>
> >> >>
> >> >>> I'm not in a place where I can test the line 323 modification right
> >> >>> now but the cell array p is present. Please note that oneSlice.py
> >> >>> which also colors by cell p works.
> >> >>>
> >> >>> Takuya OSHIMA, Ph.D.
> >> >>> Faculty of Engineering, Niigata University
> >> >>> 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
> >> >>>
> >> >>> From: Utkarsh Ayachit <utkarsh.ayachit at kitware.com>
> >> >>> Subject: Re: [Paraview] PV 3.12.0 coprocessing problem when using
> >> >>> multiple filters
> >> >>> Date: Fri, 11 Nov 2011 09:16:18 -0500
> >> >>>
> >> >>> > Is the array "p" not present when you're coprocessnig? Try taking
> out
> >> >>> > line 323 which sets the array "p" as the array to color with.
> >> >>> >
> >> >>> > Utkarsh
> >> >>> >
> >> >>> > On Fri, Nov 11, 2011 at 9:08 AM, Takuya OSHIMA
> >> >>> > <oshima at eng.niigata-u.ac.jp> wrote:
> >> >>> > > Hi,
> >> >>> > >
> >> >>> > > I am trying to explore the coprocessing capability of PV 3.12.0.
> >> When
> >> >>> > > I create a pipeline with a single slice filter within the PV
> GUI,
> >> >>> > > export the Python state file by the coprocessing plugin and run
> the
> >> >>> > > script as the coprocessing pipleline in my simulation code, it
> >> works
> >> >>> > > fine.
> >> >>> > >
> >> >>> > > However if I create a pipeline with two or more filters my
> >> simulation
> >> >>> > > code issues an error from the coprocessing library (the error
> >> message
> >> >>> > > is for the case of two slice filters):
> >> >>> > >
> >> >>> > > Traceback (most recent call last):
> >> >>> > >  File "<string>", line 2, in <module>
> >> >>> > >  File "/Users/ohshima/shindoriTest/twoSlices.py", line 323, in
> >> >>> DoCoProcessing
> >> >>> > >    DataRepresentation2.ColorArrayName = 'p'
> >> >>> > >  File
> >> >>>
> >>
> "/Volumes/RAID0data/paraview/3.12/build/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> >> >>> line 212, in __setattr__
> >> >>> > >    setter(self, value)
> >> >>> > >  File
> >> >>>
> >>
> "/Volumes/RAID0data/paraview/3.12/build/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> >> >>> line 2276, in setProperty
> >> >>> > >    return self.SetPropertyWithName(propName, value)
> >> >>> > >  File
> >> >>>
> >>
> "/Volumes/RAID0data/paraview/3.12/build/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> >> >>> line 267, in SetPropertyWithName
> >> >>> > >    prop.SetData(arg)
> >> >>> > >  File
> >> >>>
> >>
> "/Volumes/RAID0data/paraview/3.12/build/Utilities/VTKPythonWrapping/site-packages/paraview/servermanager.py",
> >> >>> line 695, in SetData
> >> >>> > >    raise ValueError("Could not locate array %s in the input." %
> >> arr)
> >> >>> > > ValueError: Could not locate array p in the input.
> >> >>> > >
> >> >>> > > The problem is same for Mac OS X 10.6 and RHEL 5.1 64bit. I
> attach
> >> the
> >> >>> > > scripts oneSlice.py (which works) and twoSlices.py (which does
> not
> >> >>> > > work). Can anybody shed light on the problem?
> >> >>> > >
> >> >>> > > Takuya
> >> >>> > >
> >> >>> > > Takuya OSHIMA, Ph.D.
> >> >>> > > Faculty of Engineering, Niigata University
> >> >>> > > 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
> >> >>> > >
> >> >>> > > _______________________________________________
> >> >>> > > Powered by www.kitware.com
> >> >>> > >
> >> >>> > > Visit other Kitware open-source projects at
> >> >>> http://www.kitware.com/opensource/opensource.html
> >> >>> > >
> >> >>> > > Please keep messages on-topic and check the ParaView Wiki at:
> >> >>> http://paraview.org/Wiki/ParaView
> >> >>> > >
> >> >>> > > Follow this link to subscribe/unsubscribe:
> >> >>> > > http://www.paraview.org/mailman/listinfo/paraview
> >> >>> > >
> >> >>> > >
> >> >>> _______________________________________________
> >> >>> Powered by www.kitware.com
> >> >>>
> >> >>> Visit other Kitware open-source projects at
> >> >>> http://www.kitware.com/opensource/opensource.html
> >> >>>
> >> >>> Please keep messages on-topic and check the ParaView Wiki at:
> >> >>> http://paraview.org/Wiki/ParaView
> >> >>>
> >> >>> Follow this link to subscribe/unsubscribe:
> >> >>> http://www.paraview.org/mailman/listinfo/paraview
> >> >>>
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> Powered by www.kitware.com
> >> >>
> >> >> Visit other Kitware open-source projects at
> >> >> http://www.kitware.com/opensource/opensource.html
> >> >>
> >> >> Please keep messages on-topic and check the ParaView Wiki at:
> >> >> http://paraview.org/Wiki/ParaView
> >> >>
> >> >> Follow this link to subscribe/unsubscribe:
> >> >> http://www.paraview.org/mailman/listinfo/paraview
> >> >>
> >> >>
> >> _______________________________________________
> >> Powered by www.kitware.com
> >>
> >> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >>
> >> Please keep messages on-topic and check the ParaView Wiki at:
> >> http://paraview.org/Wiki/ParaView
> >>
> >> Follow this link to subscribe/unsubscribe:
> >> http://www.paraview.org/mailman/listinfo/paraview
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20111206/2e372c3e/attachment-0001.htm>


More information about the ParaView mailing list