[ofa-general] New proposal for memory management

Jeff Squyres jsquyres at cisco.com
Thu Apr 30 06:19:06 PDT 2009


On Apr 30, 2009, at 1:30 AM, Aaron Fabbri (aafabbri) wrote:

> Have you considered changing the MPI API to require applications to  
> use MPI to
> allocate any/all buffers that may be used for network I/O?  That is,  
> instead of
> calling malloc() et al., call a new mpi_malloc() which allocates  
> from pre-
> registered memory.


Yes, MPI_ALLOC_MEM / MPI_FREE_MEM calls have been around for a long  
time (~10 years?).  Using them does avoid many of the problems that  
have been discussed.  Most (all?) MPI's either support ALLOC_MEM /  
FREE_MEM by registering at allocation time and unregistering at free  
time, or some variation of that.

But unfortunately, very few MPI apps use these calls; they use  
malloc() and friends instead.  Or they're written in Fortran, where  
such concepts are not easily mapped (don't underestimate how much  
Fortran MPI code runs on verbs!).  Indeed, in some layered scenarios,  
it's not easy to use these calls (e.g., if an MPI-enabled  
computational library may re-use user-provided buffers because they're  
so large, etc.).

-- 
Jeff Squyres
Cisco Systems




More information about the general mailing list