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 <[email protected]>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 <[email protected]> > 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 <[email protected]> > > To: Sohail Shafii <[email protected]> > > Cc: Andy Bauer <[email protected]>; "[email protected]" > > <[email protected]>; "[email protected]" <[email protected]>; > > "Woodring, Jonathan L" <[email protected]> > > 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 <[email protected]> 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 <[email protected]> > > 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 <[email protected]> > >> To: Sohail Shafii <[email protected]> > >> Cc: Andy Bauer <[email protected]>; "[email protected]" > >> <[email protected]>; "[email protected]" <[email protected]>; > >> "Woodring, Jonathan L" <[email protected]> > >> 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 <[email protected]> > >> 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 <[email protected]> > >>> To: Sohail Shafii <[email protected]> > >>> Cc: "Woodring, Jonathan L" <[email protected]>; Sebastien Jourdain > >>> <[email protected]>; "[email protected]" > >>> <[email protected]>; > >>> "[email protected]" <[email protected]> > >>> 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 < > [email protected]> > >>> 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" <[email protected]> > >>> To: Sohail Shafii <[email protected]>; Andy Bauer > >>> <[email protected]>; Sebastien Jourdain > >>> <[email protected]> > >>> Cc: "[email protected]" <[email protected]>; "[email protected]" > >>> <[email protected]> > >>> 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 > >> > >> > > > > >
_______________________________________________ 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
