[Paraview] PythonScriptCoProcessingExample mpirun Problem
peacemaker
peacemaker1 at web.de
Wed Dec 7 15:39:57 EST 2011
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
Sent: Tuesday, December 06, 2011 8:53 PM
To: peacemaker
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/296a718d/attachment.htm>
More information about the ParaView
mailing list