On Jun 3, 2009, at 13:30 , Ralph Castain wrote:

I'm not entirely sure what comment is being discussed. The comment in opal/util/arch.c (written by me long ago) should not be taken seriously - it was nothing more than a half-hearted attempt to appease the stormy controversy (mostly objections from George and a little from Brian) created by my moving this code to OPAL. It had no technical validity behind it at all.

Somewhat amusing to see that comment now used as justification for leaving the code there by some of the same people. ;-)

I think there is a misinterpretation of my justification. The architecture code was, from the beginning, specifically crafted for the datatype engine. Using it elsewhere, might make sense, however only the datatype engine can really take full advantage of it. Therefore, I believe this code should stay inside the datatype engine, whatever layer in Open MPI this engine will be.

The question of whether or not we accurately deal with Fortran variable sizes was always present, even when this code was in the OMPI layer. It is a tad troublesome as Fortran advocates -do- occasionally set the flags that can cause the variables to differ from their C counterparts. Rather than some obscure comment in the source code, we should probably generate a warning and (hopefully) abort when someone uses those flags to avoid creating hard-to-debug errors.

Most types existing in other programming languages will be supported to a certain extent. As an example, all Fortran integer types __WILL__ be supported. One notable exception will be the "QUAD" floating point type provided by the Fortran compiler. While there is a similar type in C, it is compiler and platform dependent, and the representation of the C and the Fortran type differs. As a result, even if we would like to support this type, we will not be able to do the conversions (by lack of knowledge about the internal representation).

However, this is the only type I'm aware of that we will not be able to support. In fact, this type is not supported today in Open MPI, so there will be no lost of functionality.

  george.



On Wed, Jun 3, 2009 at 10:58 AM, Iain Bason <iain.ba...@sun.com> wrote:

On Jun 2, 2009, at 10:24 AM, Rainer Keller wrote:

no, that's not an issue. The comment is correct: For any Fortran integer*kind we need to have _some_ C-representation as well, otherwise we disregard the
type (tm), see e.g. the old  and resolved ticket #1094.
The representation chosen is set in opal/util/arch.c and is conclusive as far
as I can tell...

Doesn't that mean that the comment is misleading? I interpret it as saying that a Fortran "default integer" is always the same as a C "int". I believe that you are saying that it really means that *any* kind of Fortran integer must be the same as one of C's integral types, or OpenMPI won't support it at all. Shouldn't the comment be clearer?

Iain


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to