[Mpi-22] MPI-2.1 ambiguity?

William Gropp wgropp at [hidden]
Fri Jul 18 13:21:49 CDT 2008


Notes inline.

On Jul 18, 2008, at 1:02 PM, Jeff Squyres wrote:

> On Jul 17, 2008, at 12:41 PM, William Gropp wrote:
>
>> There's another option.  Drop the requirement that all of the
>> predefined datatypes are predefined in all languages, but specify
>> that they may be used (with the appropriate handle conversion) as
>> input to any routine where it makes sense.
>
> Just curious: if you drop the requirement for direct access to all the
> predefined datatypes in all languages, why do you need to specify
> anything else?  MPI-2.1:16.3.4 (transfer of handles -- the *f2c/*c2f
> stuff) seems to be sufficient.  Is there a need to say something more?

The implicit assumption you are making is that the existence of the  
handle transfer functions means that the handles can be used  
everywhere.  You can certainly argue that nothing else is needed, but  
MPI 2.0 felt that it was important to make it clear that this applied  
to the datatype routines, even if those datatypes do not exist in the  
calling language.  In other words, you can't have different versions  
of MPI_Type_xxx that only know about the predefined datatypes in the  
calling language.  Without this clarification, we could be having  
that argument instead :)

>
> Further, if we drop the requirement, do we need a "high quality
> implementation" note about making all predefined handles available in
> all languages for MPI programmer convenience?  I.e., what reasonable
> expectation should an MPI programmer have (particularly for already-
> existing codes) about accessing language A's predefined handles in
> language B?  Should they *always* call C to do the translation?
>
>> For datatypes, this includes the datatype construction routines but
>> not the communication routines (don't use MPI_INT when sending
>> INTEGERs with Fortran).  This is what the Opaque Objects text  
>> expects.
>
> To me, dropping the requirement sounds like we're just making the
> user's life hard -- a Fortran library may have to introduce C code
> into their project, and then figure out all the cross-language
> compiling and linking stuff (which is not for the meek).
>
> It might be a whole lot simpler to specifically define which
> predefined handles need to be available in each language.  The
> spectrum ranges from "all languages' predefined handles must be
> available in every language" to "only that language A's predefined
> handles must be available in language A".  Suggestions?

I'm in favor of explicitly specifying the values and names (because  
of the need to use alternate names when their might be a conflict, as  
in the MPI::F_COMPLEX case), and that these have the exact same value  
as if the handle transfer function was used.

Bill

>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> mpi-22 mailing list
> mpi-22_at_[hidden]
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22

William Gropp
Paul and Cynthia Saylor Professor of Computer Science
University of Illinois Urbana-Champaign



* 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-22/attachments/20080718/970416c0/attachment.html>


More information about the Mpi-22 mailing list