[Paraview] ParaView thinks that it does not have a wind blade reader
Andy Bauer
andy.bauer at kitware.com
Wed Oct 3 18:16:27 EDT 2012
I finally got around to doing the VTK part of the WindBladeReader work.
It's on gerrit at http://review.source.kitware.com/#/c/7734/. It still
needs some cleanup but at least both the serial test and the parallel test
with a single process pass. For the serial test,
vtkIOGeometryCxx-TestWindBladeReader, I'm still getting the following
warning which needs to be fixed as well:
Warning: In /home/acbauer/CODE/VTK/VTK/IO/Geometry/vtkWindBladeReader.cxx,
line 568
vtkWindBladeReader (0x1373840): WindBladeReader error reading file:
/home/acbauer/DATA/VTKLargeData/Data/WindBladeReader/test1_topo.wind
Premature EOF while reading block of data. Expected 896000 but got 0
Sohail, can you check this out and fix it?
Thanks,
Andy
On Fri, Jul 20, 2012 at 12:02 PM, David E DeMarle
<dave.demarle at kitware.com>wrote:
> Thanks.
>
> In today's git master it now sits in VTK/IO/Parallel/vtkWindbladeReader.
>
> The serial version should go in VTK/IO/Geometry.
>
> The MPI version should go in a new module VTK/IO/MPIParallel.
> (VTK/IO/Parallel depends only on vtkSocketController now and should
> not depend on vtkMPIController).
>
> Finally when that is done we can remove the flag in paraview's xml
> that prevents it from being used in serial.
>
> David E DeMarle
> Kitware, Inc.
> R&D Engineer
> 21 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-881-4909
>
>
> On Thu, Jul 19, 2012 at 7:08 PM, Sohail Shafii <sohailshafii at yahoo.com>
> wrote:
> > Well it seems like #1 and #2 can be solved by writing a new parallel wind
> > blade reader class. I had similar experience by creating distributed
> > versions of class that I created in other vtk directories. The normal
> wind
> > blade reader would have no parallel calls, which would address #1.
> >
> > What I find interesting is that in your directories, the wind blade
> reader
> > is located in VTK/IO/Parallel. For the ParaView snapshot that I
> downloaded,
> > as well as the 3.14 source, it's still in VTK/Parallel. No Parallel
> folder
> > in VTK/IO. Is this a recent change?
> >
> > So maybe the ideal folder layout would be:
> >
> > VTK/IO/WindBladeReader.*
> >
> > VTK/IO/Parallel/DistributedWindBladeReader.*
> >
> > I can make changes to the WindBladeReader to remove the MPI-IO calls and
> > make a distributed wind blade reader class in case you want to add them
> to
> > the repository. The one template I have for the parallel/serial split is
> the
> > vtkStreamTracer and its distributed counterparts so I can use those as a
> > guide. If you have better recommendations please let me know.
> >
> > Sohail
> >
> > ________________________________
> > From: David E DeMarle <dave.demarle at kitware.com>
> > To: Sohail Shafii <sohailshafii at yahoo.com>
> > Cc: Andy Bauer <andy.bauer at kitware.com>; "migichen at gmail.com"
> > <migichen at gmail.com>; "paraview at paraview.org" <paraview at paraview.org>;
> > "Woodring, Jonathan L" <woodring at lanl.gov>
> > Sent: Thursday, July 19, 2012 3:20 PM
> >
> > Subject: Re: [Paraview] ParaView thinks that it does not have a wind
> blade
> > reader
> >
> > Two issues need to be fixed.
> > 1) that behavior in 3.14 is there because of this fix which we had to
> > rush in just before the 3.14 release.
> >
> > Committer: Utkarsh Ayachit <utkarsh.ayachit at kitware.com> 2012-02-08
> > 17:12:18
> > Parent: e401d569f6e54c49c3497852463f6b13a01da8b6 (Update version after
> > 3.14.0-RC1 tag.)
> > Child: 99fdb1aeb5997c29b43393f45a478c4b53a23109 (Merge topic
> > 'fix_windblade_segfault')
> > Branches: many (31)
> > Follows: v3.14.0-RC1
> > Precedes: v3.14.0-RC2
> >
> > Fix segfault with ParaView built with MPI when opening *.vtr files.
> >
> > The problem was that vtkWindBlade reader was getting created to test
> > "CanReadFile" and that would cause segfault unless MPI was
> initialized.
> >
> > Solved the problem by added support to vtkSMReaderFactory to respect
> the
> > ProcessSupport flag on SourceProxy and change windblade reader XML
> > to say that
> > it only works in parallel.
> >
> > In other words, Windblade reader's Constructor should not take it upon
> > itself to initialize MPI.
> >
> > Once that is fixed, we get to issue 2 before paraview 4.0
> >
> > 2) VTK's new modularization has the rule that no module can behave
> > differently with parallel (or most other cmake config options) turned
> > configured on or off. This is so because it makes it very hard to
> > package VTK when the libs behave differently in different situations.
> >
> > Ie, we can't have any more
> > #ifdef VTK_USE_MPI
> > do something
> > #else
> > do something different
> > #endif
> > in VTK classes.
> >
> > Now if we want a class to behave differently when MPI is turned on or
> > off we have to make a serial only version in a non MPI dependent
> > module and a subclass of that in an MPI dependent module.
> >
> > David E DeMarle
> > Kitware, Inc.
> > R&D Engineer
> > 21 Corporate Drive
> > Clifton Park, NY 12065-8662
> > Phone: 518-881-4909
> >
> >
> > On Thu, Jul 19, 2012 at 3:52 PM, Sohail Shafii <sohailshafii at yahoo.com>
> > wrote:
> >> When running serially, vtkSMReaderFactory::CanReadFile sees that the
> >> session
> >> has a single process. As such, on line 660 it realizes that the source
> >> proxy's process support (in this case the source is a vtkWindBladeReader
> >> proxy) is multiple processes, which causes a return of "false" from that
> >> function. This makes ParaView think that the wind blade reader can't
> read
> >> a
> >> .wind file in serial. According to Andy, the reader works find in
> >> parallel.
> >>
> >> I assume that a fix for this is pretty trivial? It never did this before
> >> in
> >> previous versions of ParaView and I think that the wind blade reader
> code
> >> has remained mostly the same. Andy mentioned some details in person when
> >> he
> >> was talking with Jon but at that time I didn't know as much as I do now.
> >> There is a mention below about enabling the filter in serial and
> parallel
> >> --
> >> is this done in a xml file?
> >>
> >> Sohail
> >>
> >> ________________________________
> >> From: David E DeMarle <dave.demarle at kitware.com>
> >> To: Sohail Shafii <sohailshafii at yahoo.com>
> >> Cc: Andy Bauer <andy.bauer at kitware.com>; "migichen at gmail.com"
> >> <migichen at gmail.com>; "paraview at paraview.org" <paraview at paraview.org>;
> >> "Woodring, Jonathan L" <woodring at lanl.gov>
> >> Sent: Tuesday, July 17, 2012 7:00 PM
> >>
> >> Subject: Re: [Paraview] ParaView thinks that it does not have a wind
> blade
> >> reader
> >>
> >> Each file that has an association with that file extension, made via the
> >> XML, has its CanReadFile method called. Put a breakpoint there to
> >> determine
> >> if ParaView even knows about that reader.
> >>
> >> On Tuesday, July 17, 2012, Sohail Shafii wrote:
> >>
> >> Sorry, but I meant to ask a different question. Here's what Andy said
> >> before, which relates to my concern:
> >> ">
> >>> I went through the code and it jogged my memory about previous problems
> >>> with
> >>> it. It had an explicit MPI call in the constructor that would cause
> >>> problems
> >>> when paraview wasn't getting built with MPI. Any time a user tried to
> >>> open
> >>> an unknown file it would try to create a windblade reader to see if the
> >>> reader could handle the file and this would cause a crash. If you
> launch
> >>> a
> >>> separate pvserver the wind blade reader will be available in the gui."
> >>
> >> What I meant was; which ParaView class "creates" or "tests" a reader to
> >> see
> >> if it can handle a file? The test code you specified has a predefined
> data
> >> set that is loaded in, and I think is more of an example to your average
> >> user. Correct me if I'm wrong.
> >>
> >> So basically ParaView will recognize the file extension, tries to load
> it,
> >> crashes somewhere, then asks you specify the data format from a dialog.
> >> I'm
> >> trying to figure out where it crashes so that I can see how that relates
> >> to
> >> the wind blade reader class and any MPI calls that are in there.
> >>
> >> Sohail
> >>
> >> Subject: Re: [Paraview] ParaView thinks that it does not have a wind
> blade
> >> reader
> >>
> >> kargad:ParaView demarle$ find . -name "*WindBlade*" -print
> >> ---> ./VTK/IO/Parallel/Testing/Cxx/TestWindBladeReader.cxx
> >> ./VTK/IO/Parallel/vtkWindBladeReader.cxx
> >> ./VTK/IO/Parallel/vtkWindBladeReader.h
> >>
> >> David E DeMarle
> >> Kitware, Inc.
> >> R&D Engineer
> >> 21 Corporate Drive
> >> Clifton Park, NY 12065-8662
> >> Phone: 518-881-4909
> >>
> >>
> >> On Tue, Jul 17, 2012 at 2:09 PM, Sohail Shafii <sohailshafii at yahoo.com>
> >> wrote:
> >>> What is the class that is responsible for testing to reader to see if
> it
> >>> can
> >>> open the .wind file?
> >>>
> >>> Sohail
> >>>
> >>> ________________________________
> >>> From: Andy Bauer <andy.bauer at kitware.com>
> >>> To: Sohail Shafii <sohailshafii at yahoo.com>
> >>> Cc: "Woodring, Jonathan L" <woodring at lanl.gov>; Sebastien Jourdain
> >>> <sebastien.jourdain at kitware.com>; "migichen at gmail.com"
> >>> <migichen at gmail.com>;
> >>> "paraview at paraview.org" <paraview at paraview.org>
> >>> Sent: Wednesday, July 11, 2012 10:53 AM
> >>>
> >>> Subject: Re: [Paraview] ParaView thinks that it does not have a wind
> >>> blade
> >>> reader
> >>>
> >>> I was reluctant to enable the reader in serial (i.e. not using MPI IO
> >>> which
> >>> I think is getting done by default with the parallel build) because of
> >>> the
> >>> following warnings that I got:
> >>>
> >>> Warning: In /home/acbauer/CODE/ParaView/
> >>> ParaView/VTK/IO/Parallel/vtkWindBladeReader.cxx, line 942
> >>> vtkWindBladeReader (0x3a0c800): WindBladeReader error reading file:
> >>> /home/acbauer/DATA/VTKLargeData/Data/WindBladeReader/test1_topo.wind
> >>> Premature EOF while reading block of data. Expected 896000 but got 0
> >>>
> >>> I just assumed that it was getting bad results so I didn't check the
> >>> serial
> >>> output with the parallel output. In either case the code should be
> >>> changed
> >>> before enabling it in serial so that it reads the files correctly and
> >>> doesn't produce any warning messages.
> >>>
> >>> Andy
> >>>
> >>> On Wed, Jul 11, 2012 at 12:04 PM, Sohail Shafii <
> sohailshafii at yahoo.com>
> >>> wrote:
> >>>
> >>> I'm not aware of any option to build/link against mpi-io. This is
> just a
> >>> standard build with mpi support that suffers from this issue.
> >>>
> >>> The ParaView website's builds also have the same bug.
> >>>
> >>> ________________________________
> >>> From: "Woodring, Jonathan L" <woodring at lanl.gov>
> >>> To: Sohail Shafii <sohailshafii at yahoo.com>; Andy Bauer
> >>> <andy.bauer at kitware.com>; Sebastien Jourdain
> >>> <sebastien.jourdain at kitware.com>
> >>> Cc: "migichen at gmail.com" <migichen at gmail.com>; "paraview at paraview.org"
> >>> <paraview at paraview.org>
> >>> Sent: Tuesday, July 10, 2012 10:06 AM
> >>>
> >>> Subject: Re: [Paraview] ParaView thinks that it does not have a wind
> >>> blade
> >>> reader
> >>>
> >>> I added the MPI calls to be in sync with what was being added in the
> >>> simulation.
> >>>
> >>> In the SuperComputing demo last year, we updated both the HiGrad
> FireTec
> >>> to
> >>> use MPI-IO and likewise ParaView to do the same thing.
> >>>
> >>> It w
> >>
> >>
> >>
> >> --
> >> David E DeMarle
> >> Kitware, Inc.
> >> R&D Engineer
> >> 21 Corporate Drive
> >> Clifton Park, NY 12065-8662
> >> Phone: 518-881-4909
> >>
> >>
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20121003/a748f250/attachment-0001.htm>
More information about the ParaView
mailing list