[Paraview] PythonScriptCoProcessingExample mpirun Problem

Andy Bauer andy.bauer at kitware.com
Wed Dec 7 16:36:57 EST 2011


You need to set the PARAVIEW_DATA_ROOT value in your paraview
configuration.  The information is in the previous email on where to
download ParaViewData which is what you need to set PARAVIEW_DATA_ROOT to.
That will enable checking the results of the coprocessing tests.  The 2
tests which run essentially just checked that it was able to do
coprocessing without crashing but didn't check the results (i.e. the
images) to see if they are correct.  It needs the baseline images from
ParaViewData in order to do that.

Andy

On Wed, Dec 7, 2011 at 3:39 PM, peacemaker <peacemaker1 at web.de> wrote:

> **
> Hi Andy,
>
> thanks for the quick answer. I've downloaded Paraview from:
> http://www.paraview.org/files/v3.12/ParaView-3.12.0.tar.gz and compiled
> it with coprocessing. When I run "ctest -V -R CoProcessing" in my
> Paraview-bin directory there seem to be just 2 Tests running and I get the
> following output:
> orschews at Lap:~/projects/ParaView-bin$ ctest -V -R CoProcessing
> UpdateCTestConfiguration  from
> :/home/orschews/projects/ParaView-bin/DartConfiguration.tcl
> Parse Config
> file:/home/orschews/projects/ParaView-bin/DartConfiguration.tcl
>  Add coverage exclude regular expressions.
>  Add coverage exclude: Common.KWCommon.*
>  Add coverage exclude: vtk.*CSInit.cxx
>  Add coverage exclude: vtkKWParaViewInit.cxx
>  Add coverage exclude: vtk[^\.]+ClientServer.cxx
>  Add coverage exclude: vtk[^\.]+Python.cxx
>  Add coverage exclude: vtkSNL
>  Add coverage exclude: GUI/Widgets
>  Add coverage exclude: moc_[^\.]+.cxx
>  Add coverage exclude: ui_[^\.]+.h
>  Add coverage exclude: qrc_[^\.]+.cxx
>  Add coverage exclude: Utilities.Xdmf2.libsrc.*
>  Add coverage exclude: Utilities.VisItBridge.avt
>  Add coverage exclude: Utilities.VisItBridge.CMake
>  Add coverage exclude: Utilities.VisItBridge.common
>  Add coverage exclude: Utilities.VisItBridge.databases
>  Add coverage exclude: Utilities.VisItBridge.include
>  Add coverage exclude: Utilities.VisItBridge.visit_vtk
>  Add coverage exclude: Utilities.protobuf
>  Add coverage exclude: vtk.*TCLInit.cxx
>  Add coverage exclude: vtk[^\.]+(Java|Python|Tcl).cxx
>  Add coverage exclude: Utilities.kwsys
>  Add coverage exclude: Utilities.vtksys
>  Add coverage exclude: Utilities.vtkmetaio
>  Add coverage exclude: Utilities.vtklibproj4
>  Add coverage exclude: Utilities.vtkalglib
>  Add coverage exclude: Utilities.octree
>  Add coverage exclude: .*vtkOpenGLState.*
>  Add coverage exclude: .*Testing.Cxx.*cxx
>  Add coverage exclude: .*Testing.Cxx.*h
>  Add coverage exclude: .*moc_.*cxx
> UpdateCTestConfiguration  from
> :/home/orschews/projects/ParaView-bin/DartConfiguration.tcl
> Parse Config
> file:/home/orschews/projects/ParaView-bin/DartConfiguration.tcl
> Test project /home/orschews/projects/ParaView-bin
> Constructing a list of tests
> Done constructing a list of tests
> Checking test dependency graph...
> Checking test dependency graph end
> test 372
>     Start 372: CoProcessingTestPythonScript
>
> 372: Test command:
> /home/orschews/projects/ParaView-bin/bin/CoProcessingPythonScriptExample
> "/home/orschews/projects/ParaView3/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest.py"
> 372: Test timeout computed to be: 1500
> 372: Initializing MPI.
> 372: Finished run with 0 errors.
> 1/2 Test #372: CoProcessingTestPythonScript .......   Passed    7.41 sec
> test 373
>     Start 373: PCoProcessingPythonScriptExample
>
> 373: Test command: /usr/bin/mpiexec "-np" "2"
> "/home/orschews/projects/ParaView-bin/bin/CoProcessingPythonScriptExample"
> "/home/orschews/projects/ParaView3/CoProcessing/CoProcessor/Testing/Cxx/PythonScriptTest2.py"
> 373: Test timeout computed to be: 1500
> 373: Initializing MPI.
> 373: Initializing MPI.
> 373: Finished run with 0 errors.
> 373: Finished run with 0 errors.
> 2/2 Test #373: PCoProcessingPythonScriptExample ...   Passed    1.99 sec
>
> The following tests passed:
>  CoProcessingTestPythonScript
>  PCoProcessingPythonScriptExample
>
> 100% tests passed, 0 tests failed out of 2
>
> Total Test time (real) =  11.18 sec
> orschews at Lap:~/projects/ParaView-bin$
>
>
>
>
>  *From:* Andy Bauer <andy.bauer at kitware.com>
> *Sent:* Tuesday, December 06, 2011 8:53 PM
> *To:* peacemaker <peacemaker1 at web.de>
> *Cc:* paraview at paraview.org
> *Subject:* Re: [Paraview] PythonScriptCoProcessingExample mpirun Problem
>
> Hi Marek,
>
> I'm a bit confused.  Where are you getting your CoProcessing executable
> from?  If I run the coprocessing library tests I don't see any failures on
> my machine and they're running in parallel.  Could you send me the results
> of doing "ctest -V -R CoProcessing" on your machine?  There should be 6
> tests that run.  The PCoProcessingPythonScriptExampleOne tests the
> coprocessing tools with a 2 process run.  You may need to check out
> ParaViewData (http://www.paraview.org/paraview/resources/software.html)
> and add that option in the cmake configuration.
>
> Andy
>
> On Tue, Dec 6, 2011 at 3:31 AM, peacemaker <peacemaker1 at web.de> wrote:
>
>> **
>> Hi,
>>
>> Im trying to run the PythonScriptCoProcessingExample(.cxx) included in
>> ParaView sourcecode - this is my first "getting in touch" with MPI
>> + ParaView (and Coprocessing of course) so maybe it`s just a very simple
>> problem. I already succesfully compiled Paraview with Coprocessing and
>> python (Ubuntu 11.10) and I`m running the source with COPROCESSOR_USE_MPI.
>> When I run it like:
>> mpirun -n 1 ./CoProcessing ./PythonScriptTest.py
>> then I get as result CPGrid0_mpirun1.png and CPPressure0_mpirun1.png -
>> looks good.
>> If I try:
>> mpirun -n 2  ./CoProcessing ./PythonScriptTest.py
>> then I get as result CPGrid0_mpirun2.png and CPPressure0_mpirun2.png -
>> these pictures seem to be incorrect.
>> In vtkPVCustomTestDriver.cxx there are source lines like:
>> ...
>> #ifdef COPROCESSOR_USE_MPI
>>   myid = vtkMPICommunicator::GetWorldCommunicator()->GetLocalProcessId();
>> #endif
>> ....
>> gridBuilder->SetSpacing(spacing);
>>   double origin[3] = {myid*49*.2,20,300};
>> .....
>> If I understand it correctly there should be just a shift on the x-axis
>> between the grids? The pictures get more and more messy, when I increase
>> the numer of processes.
>> After little messing around with the pyton-script needed to run this
>> example (see bottom of this Mail) I got the following output when running
>> it with mpirun -n 3: CPPressure0_changedscript_mpirun3.png. The halfs of
>> the 2nd and 3rd grid are missing.
>>
>> What am I doing wrong? Is this example not supposed to be run with MPI?
>> How does Coprocessing merge the data from different processes and how does
>> the picture get built?
>>
>> I already tested this on a different PC with the same result. I hope you
>> can help me.
>>
>> Best wishes
>>
>> Marek
>>
>>
>> changed Python Script:
>> def DoCoProcessing(datadescription):
>>   timestep = datadescription.GetTimeStep()
>>
>>   grid = datadescription.GetInputDescriptionByName("input").GetGrid()
>>   pressure = grid.GetPointData().GetArray('Pressure')
>>
>> #  print grid
>>
>>   #grid.GetPointData().SetScalars(pressure)
>>   obj.SetOutput(grid)
>> #  print obj
>>
>>   # get global range of Pressure
>>   di = trivialproducer.GetDataInformation(0)
>>   trivialproducer.UpdatePipeline()
>>   di.Update()
>>   pdi = di.GetPointDataInformation()
>> #  print pdi
>>   ai = pdi.GetArrayInformation('Pressure')
>>   pressurerange = ai.GetComponentRange(0)
>>
>>   contour.Isosurfaces = .5*(pressurerange[0]+pressurerange[1])
>>
>>   # now output the results to the screen as well as taking
>>   # a screen shot of the view
>>   #setup a window
>>   #rep = Show(contour)
>>   #ren = Render()
>>
>>   #set the background color
>>   #ren.Background=[1,1,1]  #white
>>
>>   #set image size
>>   #ren.ViewSize = [1000, 1000] #[width, height]
>>
>>   #set representation
>>   #rep.Representation="Surface"
>>
>>   #save screenshot
>>   #gridimagefilename = 'CPGrid'+str(timestep) + '.png'
>>   #WriteImage(gridimagefilename)
>>
>>   rep = Show(trivialproducer)
>>   #rep.LookupTable = MakeBlueToRedLT(pressurerange[0], pressurerange[1])
>>   #rep.ColorArrayName = 'Pressure'
>>   #rep.ColorAttributeType = 'POINT_DATA'
>>   #set representation
>>   rep.Representation="Wireframe"
>>   #rep = Show(contour)
>>   #set the background color
>>   ren = Render()
>>   ren.Background=[0,0,0]  #white
>>   ren.ViewSize = [1000, 1000] #[width, height]
>>
>>   pressureimagefilename = 'CPPressure'+str(timestep) + '.png'
>>   WriteImage(pressureimagefilename)
>>   return
>>
>> def RequestDataDescription(datadescription):
>>   time = datadescription.GetTime()
>>   timestep = datadescription.GetTimeStep()
>>   print timestep
>>   if timestep % 20 == 0:
>>     # add in some fields
>>     #print 'added Pressure and wanting to do coprocessing'
>>
>> datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
>>     datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
>>   return
>>
>> # the code below is needed to import objects from paraview.simple
>> # plus the definition of vtkTrivialProducer into this python script.
>> try: paraview.simple
>> except: from paraview.simple import *
>>
>> trivialproducer = TrivialProducer()
>> contour = Contour(Input=trivialproducer)
>>
>> obj = trivialproducer.GetClientSideObject()
>>
>> _______________________________________________
>> 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/20111207/780bc49b/attachment-0001.htm>


More information about the ParaView mailing list