new communicator value differs for myid=0
Hello, I am using MPICH2 3.0.2 with gfortran 4.4.7 on a 64-bit Linux machine. The program uses MPI_Comm_split to create a new communicator. All processes print the same value for MPI_COMM_WORLD, but for the new communicator, all processes with myid greater than zero print the same value, but myid=0 prints a different value. Why is that? I thought all processes should print the same number as well. Simple test code: =================================================== PROGRAM Test IMPLICIT NONE include "mpif.h" INTEGER :: nBins=8, nWalkers=8 INTEGER :: ierr,numprocs,myid,energy_comm INTEGER :: energy_id,numranks,iBin,iWalker INTEGER :: mpistatus(MPI_STATUS_SIZE) CALL MPI_INIT(ierr) CALL MPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,ierr) CALL MPI_COMM_RANK(MPI_COMM_WORLD,myid,ierr) iBin = myid/nWalkers iWalker = MOD(myid,nWalkers) CALL MPI_Comm_split(MPI_COMM_WORLD,iBin,iWalker,energy_comm,ierr) CALL MPI_COMM_SIZE(energy_comm,numranks,ierr) CALL MPI_COMM_RANK(energy_comm,energy_id,ierr) write(*,*)myid,MPI_COMM_WORLD,energy_comm CALL MPI_FINALIZE(ierr) END PROGRAM Test ========================================================= Compile with mpif90 test.f90 Run with mpirun -n 4 -f host.txt ./a.out Generates 0 1140850688 -2080374780 2 1140850688 -2080374782 1 1140850688 -2080374782 3 1140850688 -2080374782 "mpif90 -v" returns: mpif90 for MPICH version 3.0.2 Using built-in specs. Target: x86_64-redhat-linux6E Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --disable-gnu-unique-object --with-as=/usr/libexec/binutils220/as --enable-languages=c,c++,fortran --disable-libgcj --with-mpfr=/builddir/build/BUILD/gcc-4.4.7-20120601/obj-x86_64-redhat-linux6E/mpfr-install/ --with-ppl=/builddir/build/BUILD/gcc-4.4.7-20120601/obj-x86_64-redhat-linux6E/ppl-install --with-cloog=/builddir/build/BUILD/gcc-4.4.7-20120601/obj-x86_64-redhat-linux6E/cloog-install --with-tune=generic --with-arch_32=i586 --build=x86_64-redhat-linux6E Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-1) (GCC) I get the same output for MPICH2 1.4.1p1. Any ideas what is happening? Or shouldn't the new communicator also have the same value for all myids? Thank you very much for any suggestions. Shan-Ho ---------------------------------------------------- Shan-Ho Tsai University of Georgia
participants (1)
-
Shan-ho Tsai