[mpich-discuss] Error: "MPIR_Get_contextid_sparse_group(1193): Too many communicators (0/2048)"

Ted Sariyski tsariysk at craft-tech.com
Fri May 23 09:44:13 CDT 2014


I need a little bit more help. My question relates to the structure of 
the array (referred below as A), for which a window object will be created.

Let say that particles are of type particle_t:

type particle_t
       integer :: host, id,...
       real,pointer :: data(:)=>null()
end type particle_t

I built two corresponding mpi types, one with data allocated, 
/mpi_particles_t/, and /mpi_particles_null_t/, when p%data=>null().

What I want to do is the following:

 1.   All processes allocates an array of type particles_t for *all*
    particles, but data is allocated only if a particle is assigned to 
    the domain:

/allocate(A(tot_num_particles))
                do n=1,tot_num_particles
                    if ( particle(n)%host == myid) 
allocate(particle(n)%data(data_size))
                 enddo/

     2. All processes create their mpi data type mpi_A_t:

/do n=1//,//tot_num_particles//

//if ( particle(n)%host == myid)  then //
//                  blockcounts(n) = 1 ; oldtypes(n) = mpi_particles_t//
//              else //
//                  blockcounts(n) = 1 ; oldtypes(n) = 
mpi_particles_null_t//
/ /  endif/
/            call MPI_GET_ADDRESS(A(n), offsets(n), ierr)//
//        enddo/

/call 
mpi_type_create_struct(//tot_num_particles//,blockcounts,offsets,oldtypes,mpi_A_myid_t,ierr)//
//        call mpi_type_commit(mpi_A_myid_t,ierr)

/I gave a try but it fails. Before I proceed I want to make sure that 
there is nothing fundamentally wrong with this approach. Besides, even 
if it is correct, I am not sure that this is the 'best' solution. I will 
highly appreciate your comments.

Thanks in advance,
--Ted
/
///



On 05/22/2014 03:31 PM, Ted Sariyski wrote:
> I see.  Thanks a lot.
> --Ted
>
>
> On 05/22/2014 03:15 PM, Rajeev Thakur wrote:
>>> What do you mean with: "Why can’t all processes open one large 
>>> window?" I guess I miss something.
>> If each process has an array of objects that belong to it (called 
>> array A say) , then with a single call to MPI_Win_create you can 
>> create a window object that has everyone's A arrays in it.
>>
>> Rajeev
>>
>>
>>
>> On May 22, 2014, at 9:46 AM, Ted Sariyski <tsariysk at craft-tech.com> 
>> wrote:
>>
>>> It is about MPI_win. Here is the problem as it relates to MPI (it is 
>>> a Boltzmann type equation).
>>>
>>> There are N particles interacting with each other. Interaction is 
>>> directional, so that a particle interacts only with those particles, 
>>> which are within a narrow cone. The first step is to segregate the 
>>> initial set of N particles into subsets of particles  (I called it 
>>> 'objects'),  which interact with each other. Here is what I do:
>>>     • Assign each object to a process.
>>>     • The process which owns a object:
>>>         • Makes a guess for the maximum number of particles expected 
>>> in this object.
>>>         • Allocates memory for it.
>>>         • Opens a shared window.
>>>     • All processes
>>>         • Each particle identify which object it belongs to, and 
>>> PUTs its data there.
>>>     • After assembly is done, objects are passed to a solver.
>>>     • Repeat
>>> What do you mean with: "Why can’t all processes open one large 
>>> window?" I guess I miss something.
>>> Thanks,
>>> --Ted
>>>
>>>
>>> On 05/21/2014 11:03 PM, Balaji, Pavan wrote:
>>>> On May 21, 2014, at 6:02 PM, Ted Sariyski <tsariysk at craft-tech.com>
>>>>   wrote:
>>>>
>>>>> Memory limitations. With one large window all processes have to 
>>>>> allocate memory for the objects they own as well as for objects 
>>>>> assigned to other process.
>>>>>
>>>> Are we talking about the same thing here?  I’m referring to an 
>>>> MPI_Win.  What objects do processes need to keep track of?
>>>>
>>>>    — Pavan
>>>>
>>>> _______________________________________________
>>>> discuss mailing list
>>>> discuss at mpich.org
>>>>
>>>> To manage subscription options or unsubscribe:
>>>>
>>>> https://lists.mpich.org/mailman/listinfo/discuss
>>> _______________________________________________
>>> discuss mailing list     discuss at mpich.org
>>> To manage subscription options or unsubscribe:
>>> https://lists.mpich.org/mailman/listinfo/discuss
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20140523/da5f8e02/attachment.html>


More information about the discuss mailing list