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
[email protected]
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