[mpich-discuss] Question about MPIU_Handle_obj_alloc (&MPID_Request_mem)
William Gropp
wgropp at illinois.edu
Tue Jan 27 12:37:56 CST 2009
There is a tradeoff in the design. There were two objectives:
1) Make allocations of small numbers of objects *very* fast (the case
in many typical programs)
2) Bound the memory consumed by MPI internals.
The handle allocator uses three levels of allocations - preallocated,
direct, and indirect. Objects in the indirect pool require an extra
dereference to access, but this allows a large (but bounded) number of
objects to be allocated.
I'm surprised that you ran out - the parameters in the design allow
for 256k objects. It would be possible to realloc the indirect array
and increase the size, but I don't know of an application case that
needs this. Do you have an example?
Bill
On Jan 23, 2009, at 3:09 PM, Tejus A G wrote:
> I have an mpich-2 question. In the function, MPIU_Handle_indirect_init
> used during object_allocation, there is the below fail case,
> /* See if we can allocate another block */
> if (*indirect_size >= indirect_max_size-1) {
> return 0;
> }
>
> How/Why is this a failure case? I have a test which fails at
> MPIU_Handle_obj_alloc
> due to above check, but the system has a lot of memory free.
>
> TIA
>
William Gropp
Deputy Director for Research
Institute for Advanced Computing Applications and Technologies
Paul and Cynthia Saylor Professor of Computer Science
University of Illinois Urbana-Champaign
More information about the mpich-discuss
mailing list