Hi all, I am scratching my head over what I think should be a relatively simple group communicator operation. I am hoping some kind person can put me out of my misery and figure out what I'm doing wrong.
Basically, I am trying to scatter a set of values to a subset of process ranks (hence the need for a group communicator). When I run the sample code over 4 processes (and scattering to 3 processes), I am getting a group-communicator related error in the scatter operation: > [stats.crc.nd.edu:29285] *** An error occurred in MPI_Scatter > [stats.crc.nd.edu:29285] *** on communicator MPI_COMM_WORLD > [stats.crc.nd.edu:29285] *** MPI_ERR_COMM: invalid communicator > [stats.crc.nd.edu:29285] *** MPI_ERRORS_ARE_FATAL (your MPI job will now > abort) > Complete - Rank 1 > Complete - Rank 0 > Complete - Rank 3 The actual test code is below: program scatter_bug use mpi implicit none integer :: ierr,my_rank,procValues(3),procRanks(3) integer :: in_cnt,orig_group,new_group,new_comm,out call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD,my_rank,ierr) procRanks=(/0,1,3/) procValues=(/0,434,268/) in_cnt=3 ! Create sub-communicator call MPI_COMM_GROUP(MPI_COMM_WORLD, orig_group, ierr) call MPI_Group_incl(orig_group, in_cnt, procRanks, new_group, ierr) call MPI_COMM_CREATE(MPI_COMM_WORLD, new_group, new_comm, ierr) call MPI_SCATTER(procValues, 1, MPI_INTEGER, out, 1, MPI_INTEGER, 0, new_comm, ierr); print *,"Complete - Rank", my_rank end program scatter_bug Thanks in advance for any advice you can give. Regards. Tim.