I built the trilinos-capable version of fipy. It seems to work for serial (even for a non-trivial case), but I am getting errors with more than one processor with a simple call to globalValue(), which I was trying to use to make a plot by gathering the results to procID==0
I used the latest git version of mpi4py and trilinos. Am I doing something wrong (is there a different preferred way to gather things to a single processor to save or make plots?) or do I need to use a specific version of these packages and rebuild? It seems the function is expecting something with a different interface or call structure. Kris python test.py hello from 0 out of 1 [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] `--> ~/local/trilinos-fipy/anaconda/bin/mpirun -np 1 python test.py hello from 0 out of 1 [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] --> ~/local/trilinos-fipy/anaconda/bin/mpirun -np 2 python test.py hello from 1 out of 2 Traceback (most recent call last): File "test.py", line 6, in <module> print 'hello from',fp.tools.parallel.procID,'out of',fp.tools.parallel.Nproc,p.globalValue File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/variables/cellVariable.py", line 163, in globalValue self.mesh._globalNonOverlappingCellIDs) File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/variables/meshVariable.py", line 171, in _getGlobalValue globalIDs = numerix.concatenate(self.mesh.communicator.allgather(globalIDs)) File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/tools/comms/mpi4pyCommWrapper.py", line 75, in allgather return self.mpi4py_comm.allgather(sendobj=sendobj, recvobj=recvobj) File "MPI/Comm.pyx", line 1288, in mpi4py.MPI.Comm.allgather (src/mpi4py.MPI.c:109141) TypeError: allgather() got an unexpected keyword argument 'recvobj' hello from 0 out of 2 Traceback (most recent call last): File "test.py", line 6, in <module> print 'hello from',fp.tools.parallel.procID,'out of',fp.tools.parallel.Nproc,p.globalValue File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/variables/cellVariable.py", line 163, in globalValue self.mesh._globalNonOverlappingCellIDs) File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/variables/meshVariable.py", line 171, in _getGlobalValue globalIDs = numerix.concatenate(self.mesh.communicator.allgather(globalIDs)) File "/home/klkuhlm/local/trilinos-fipy/anaconda/lib/python2.7/site-packages/fipy/tools/comms/mpi4pyCommWrapper.py", line 75, in allgather return self.mpi4py_comm.allgather(sendobj=sendobj, recvobj=recvobj) File "MPI/Comm.pyx", line 1288, in mpi4py.MPI.Comm.allgather (src/mpi4py.MPI.c:109141) TypeError: allgather() got an unexpected keyword argument 'recvobj' ------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code.. Per user-direction, the job has been aborted. ------------------------------------------------------- -------------------------------------------------------------------------- mpirun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [[1719,1],1] Exit code: 1 --------------------------------------------------------------------------
import fipy as fp m = fp.Grid2D(nx=10,ny=20) p = fp.CellVariable(m,value=1.0) print 'hello from',fp.tools.parallel.procID,'out of',fp.tools.parallel.Nproc,p.globalValue
_______________________________________________ fipy mailing list fipy@nist.gov http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]