[Mpi3-tools] MPI handles interface

Jeff Squyres jsquyres at cisco.com
Thu Apr 16 16:31:24 CDT 2009

I took a first shot at removing the One Big Struct-ness (OBS) of the  
MPI handles proposal: I removed the OBS from communicators and  
replaced it with several "query" functions.  A few structs still  
remain -- those that are all pointers, for example, or those that will  
likely otherwise not be problematic (e.g., not have holes).

I only updated the communicators section in the header file; I did not  
yet update the other 3 handle types that were prototyped (MPI_Status,  
MPI_Request, MPI_Errhandler).  I also did not yet update the  
implementation to match, so it won't compile.  I wanted to get some  
feedback from the group before continuing.

What about enums -- will those be problematic?  I tended to prefer  
enums in most places (vs. #define's) because a debugger can show those  
value names (when debugging this software itself -- not necessarily  
when in general use by a debugger for an MPI job).  If enums are going  
to be problematic, I can switch to #defines -- but it would be nice  
not to, if possible.

The communicator "query" functions that I created start around line 649:


Could I get some comments on the group as to the general style of what  
I did?

If the web interface is too klunky for you, you can clone the repo  
with Mercurial:

     hg clone http://www.open-mpi.org/hg/hgwebdir.cgi/jsquyres/mpi3-tools-handles

The individual file to look at is ompi/debuggers/mpihandles_interface.h.

Jeff Squyres
Cisco Systems

More information about the mpiwg-tools mailing list