[mpich-discuss] new communicator value differs for myid=0
Shan-ho Tsai
shtsai at uga.edu
Mon Oct 14 14:50:51 CDT 2013
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
More information about the discuss
mailing list