Marco, Yes, this is expected. Communicator handles are opaque objects. No guarantees are made by MPI about their values to the user. To reason about them, you need to use MPI_COMM_COMPARE. Ken On 05/20/2014 09:33 AM, marco restelli wrote:
Hi, I noticed that the attached fortran code produces this output:
$ mpiexec -n 4 -l ./mpitest [0] color = 1 ; newcomm = -2080374780 [1] color = 1 ; newcomm = -2080374782 [2] color = 2 ; newcomm = -2080374782 [3] color = 2 ; newcomm = -2080374782
I know that I am not supposed to use the values of the communicator handles, but I was surprised to see that two processors in the same communicator have two different values for such an handle.
More precisely, I was assuming that newcomm had one value on procs 0 and 1 and another value on 2 and 3.
So my question is whether this is the expected behaviour or not. (In fact, I need to debug another problem in my code and I wonder whether this could be related or not).
Thank you, Marco
mpich: version 1.5 gfortran: 4.7.3
program mpitest
implicit none include "mpif.h"
integer :: key, color, newcomm, mpi_id, ierr
call mpi_init(ierr) call mpi_comm_rank(mpi_comm_world,mpi_id,ierr)
key = 1 ! same ordering as in comm select case(mpi_id) case(0) color = 1 case(1) color = 1 case(2) color = 2 case(3) color = 2 end select call mpi_comm_split( mpi_comm_world , color,key , newcomm , ierr)
write(*,*) "color = ",color, "; newcomm = ",newcomm
call mpi_finalize(ierr)
end program mpitest _______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss