Hi Timothy

There is no call to MPI_Finalize in the program.
Would this be the problem?

I hope this helps,
Gus Correa


On Mar 6, 2012, at 10:19 AM, Timothy Stitt wrote:

> Will definitely try that. Thanks for the suggestion.
> 
> Basically, I need to be able to scatter values from a sender to a subset of 
> ranks (as I scale my production code, I don't want to use MPI_COMM_WORLD, as 
> the receiver list will be quite small) without the receivers knowing if they 
> are to receive something in advance of the scatter.
> 
> Thanks again for any help,
> 
> Tim.
> 
> On Mar 6, 2012, at 10:17 AM, <nadia.der...@bull.net> wrote:
> 
>> Tim, 
>> 
>> Since MPI_Comm_create sets the created communicator to MPI_COMM_NULL for the 
>> processes that are not in the group , may be preceding your collectives by 
>> a: 
>> if (MPI_COMM_NULL != new_comm) { 
>>    <your collective> 
>> } 
>> could be enough. 
>> 
>> But may be I'm wrong: I'll let the specialists answer. 
>> 
>> Regards, 
>> Nadia 
>>  
>> -- 
>> Nadia Derbey 
>>   
>> 
>> users-boun...@open-mpi.org wrote on 03/06/2012 02:32:03 PM:
>> 
>> > De : Timothy Stitt <timothy.stit...@nd.edu> 
>> > A : Open MPI Users <us...@open-mpi.org> 
>> > Date : 03/06/2012 02:32 PM 
>> > Objet : Re: [OMPI users] Scatter+Group Communicator Issue 
>> > Envoyé par : users-boun...@open-mpi.org 
>> > 
>> > Hi Nadia, 
>> > 
>> > Thanks for the reply. This is were my confusion with the scatter 
>> > command comes in. I was really hoping that MPI_Scatter would 
>> > automagically ignore the ranks that are not part of the group 
>> > communicator, since this test code is part of something more 
>> > complicated were many sub-communicators are created over various 
>> > combinations of ranks, and used in various collective routines. Do I
>> > really have to filter out manually the non-communicator ranks before
>> > I call the scatter...it would be really nice if the scatter command 
>> > was 'smart' enough to do this for me by looking at the communicator 
>> > that is passed to the routine. 
>> > 
>> > Thanks again, 
>> > 
>> > Tim. 
>> > 
>> > On Mar 6, 2012, at 8:28 AM, <nadia.der...@bull.net> wrote: 
>> > 
>> > Isn't it because you're calling MPI_Scatter() even on rank 2 which 
>> > is not part of your new_comm? 
>> > 
>> > Regards, 
>> > Nadia 
>> > 
>> > users-boun...@open-mpi.org wrote on 03/06/2012 01:52:06 PM:
>> > 
>> > > De : Timothy Stitt <timothy.stit...@nd.edu> 
>> > > A : "us...@open-mpi.org" <us...@open-mpi.org> 
>> > > Date : 03/06/2012 01:52 PM 
>> > > Objet : [OMPI users] Scatter+Group Communicator Issue 
>> > > Envoyé par : users-boun...@open-mpi.org 
>> > > 
>> > > 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.
>> > > _______________________________________________
>> > > users mailing list
>> > > us...@open-mpi.org
>> > > http://www.open-mpi.org/mailman/listinfo.cgi/users
>> > <ATT00001..txt> 
>> > 
>> > Tim Stitt PhD (User Support Manager).
>> > Center for Research Computing | University of Notre Dame | 
>> > P.O. Box 539, Notre Dame, IN 46556 | Phone:  574-631-5287 | Email: 
>> > tst...@nd.edu 
>> > _______________________________________________
>> > users mailing list
>> > us...@open-mpi.org
>> > http://www.open-mpi.org/mailman/listinfo.cgi/users<ATT00001..txt>
> 
> Tim Stitt PhD (User Support Manager).
> Center for Research Computing | University of Notre Dame | 
> P.O. Box 539, Notre Dame, IN 46556 | Phone:  574-631-5287 | Email: 
> tst...@nd.edu 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to