Filed as https://svn.open-mpi.org/trac/ompi/ticket/2415.
Thanks for the bug report! On May 20, 2010, at 1:33 PM, Edgar Gabriel wrote: > thanks for pointing the problem out. I checked in the code, the problem > is the MPI layer itself. The following check prevents us from doing > anything > > ---- > e.g. ompi/mpi/c/allgather.c > > if ((MPI_IN_PLACE != sendbuf && 0 == sendcount) || > (0 == recvcount)) { > return MPI_SUCCESS; > } > ---- > > > so the problem is not in the modules/algorithms but in the API layer, > which did not encounter for intercommunicators correctly. I'll try to > fix it. > > Thanks > edgar > > On 05/20/2010 10:48 AM, Battalgazi YILDIRIM wrote: > > Hi, > > > > you are right, I should have provided C++ and Fortran example, so I am > > doing now > > > > > > Here is "cplusplus.cpp" > > > > #include <mpi.h> > > #include <iostream> > > using namespace std; > > int main() > > { > > MPI::Init(); > > char command[] = "./a.out"; > > MPI::Info info; > > MPI::Intercomm child = MPI::COMM_WORLD.Spawn(command, NULL, 8,info, 0); > > int a[8]={0,0,0,0,0,0,0,0}; > > int dummy; > > child.Allgather(&dummy, 0, MPI::INT, a, 1, MPI::INT); > > child.Disconnect(); > > cout << "a["; > > for ( int i = 0; i < 7; i++ ) > > cout << a[i] << ","; > > cout << a[7] << "]" << endl; > > > > MPI::Finalize(); > > } > > > > > > Here is again "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 > > > > here is how you build and run > > > > -bash-3.2$ mpif90 fortran.f90 > > -bash-3.2$ mpiCC -o parent cplusplus.cpp > > -bash-3.2$ ./parent > > a[0,0,0,0,0,0,0,0] > > > > > > > > If I use mpich2, > > -bash-3.2$ mpif90 fortran.f90 > > -bash-3.2$ mpiCC -o parent cplusplus.cpp > > -bash-3.2$ ./parent > > a[1,2,3,4,5,6,7,8] > > > > I hope that you can repeat this problem to see problem with OPENMPI, > > > > Thanks, > > > > > > On Thu, May 20, 2010 at 10:09 AM, Jeff Squyres <jsquy...@cisco.com > > <mailto:jsquy...@cisco.com>> wrote: > > > > Can you send us an all-C or all-Fortran example that shows the problem? > > > > We don't have easy access to test through the python bindings. > > ...ok, I admit it, it's laziness on my part. :-) But having a > > pure Open MPI test app would also remove some possible variables and > > possible sources of error. > > > > > > On May 20, 2010, at 9:43 AM, Battalgazi YILDIRIM wrote: > > > > > Hi Jody, > > > > > > I think that it is correct, you can test this example in your > > desktop, > > > > > > thanks, > > > > > > On Thu, May 20, 2010 at 3:18 AM, jody <jody....@gmail.com > > <mailto:jody....@gmail.com>> wrote: > > > 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 <mailto: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 <http://MPI.INT>],[a,MPI.INT > > <http://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 <mailto:us...@open-mpi.org> > > > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > > > > > > > _______________________________________________ > > > users mailing list > > > us...@open-mpi.org <mailto:us...@open-mpi.org> > > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > > > > > > > > > -- > > > B. Gazi YILDIRIM > > > _______________________________________________ > > > users mailing list > > > us...@open-mpi.org <mailto:us...@open-mpi.org> > > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > > > -- > > Jeff Squyres > > jsquy...@cisco.com <mailto:jsquy...@cisco.com> > > For corporate legal information go to: > > http://www.cisco.com/web/about/doing_business/legal/cri/ > > > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org <mailto:us...@open-mpi.org> > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > > > > > > > -- > > B. Gazi YILDIRIM > > > > > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > <signature.asc>_______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/