Hi I am really no python expert, but it looks to me as if you were gathering arrays filled with zeroes: a = array('i', [0]) * n
Shouldn't this line be a = array('i', [r])*n where r is the rank of the process? Jody On Thu, May 20, 2010 at 12:00 AM, Battalgazi YILDIRIM <yildiri...@gmail.com> wrote: > Hi, > > > I am trying to use intercommunicator ::Allgather between two child process. > I have fortran and Python code, > I am using mpi4py for python. It seems that ::Allgather is not working > properly in my desktop. > > I have contacted first mpi4py developers (Lisandro Dalcin), he simplified > my problem and provided two example files (python.py and fortran.f90, > please see below). > > We tried with different MPI vendors, the following example worked correclty( > it means the final print out should be array('i', [1, 2, 3, 4, 5, 6, 7, 8]) > ) > > However, it is not giving correct answer in my two desktop (Redhat and > ubuntu) both > using OPENMPI > > Could yo look at this problem please? > > If you want to follow our discussion before you, you can go to following > link: > http://groups.google.com/group/mpi4py/browse_thread/thread/c17c660ae56ff97e > > yildirim@memosa:~/python_intercomm$ more python.py > from mpi4py import MPI > from array import array > import os > > progr = os.path.abspath('a.out') > child = MPI.COMM_WORLD.Spawn(progr,[], 8) > n = child.remote_size > a = array('i', [0]) * n > child.Allgather([None,MPI.INT],[a,MPI.INT]) > child.Disconnect() > print a > > yildirim@memosa:~/python_intercomm$ more fortran.f90 > program main > use mpi > implicit none > integer :: parent, rank, val, dummy, ierr > call MPI_Init(ierr) > call MPI_Comm_get_parent(parent, ierr) > call MPI_Comm_rank(parent, rank, ierr) > val = rank + 1 > call MPI_Allgather(val, 1, MPI_INTEGER, & > dummy, 0, MPI_INTEGER, & > parent, ierr) > call MPI_Comm_disconnect(parent, ierr) > call MPI_Finalize(ierr) > end program main > > yildirim@memosa:~/python_intercomm$ mpif90 fortran.f90 > > yildirim@memosa:~/python_intercomm$ python python.py > array('i', [0, 0, 0, 0, 0, 0, 0, 0]) > > > -- > B. Gazi YILDIRIM > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >