[Paraview] PV 3.12.0 coprocessing problem when using multiple filters

Takuya OSHIMA oshima at eng.niigata-u.ac.jp
Wed Dec 7 07:10:10 EST 2011


Thanks Andy.

Takuya OSHIMA, Ph.D.
Faculty of Engineering, Niigata University
8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN

From: Andy Bauer <andy.bauer at kitware.com>
Subject: Re: [Paraview] PV 3.12.0 coprocessing problem when using multiple filters
Date: Tue, 6 Dec 2011 16:05:57 -0500

> * 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
>     >>
> 


More information about the ParaView mailing list