[MPIWG Fortran] Provide Fortran datatypes if Fortran bindings not provided?

Rolf Rabenseifner rabenseifner at hlrs.de
Thu Feb 18 14:55:21 CST 2016

I would prefer a solution where an application or middlware can check at
runtime whether the Fortran MPI datatypes exist, i.e., I like mpich's
solution. It is more simple than all methods that People must check prior
to compile and must remove or Change parts of there software.

In the moment,in the case of a missing accompanying Fortran Compiler,
an application or middleware that wants to handle
MPI Fortran datatypes must handle both cases
(1) mpi.h does not provide a specific MPI Fortran datatype
(2) mpi.h provides this MPI Fortran datatype as MPI_DATATYPE_NULL

The additional case, that it is mapped to a real datatype is not
an exception, because it defines some sort of accompanying Fortran Compiler.

I would prefer that the MPI standard defines, which of the two
options should be implemented.

As said at the beginning, I would prefer (1), 
 - as mpich is doing it in general, and
 - OMPI is doing it partially,  
whereas (2) was not done by mpich nor by OMPI.

The MPI Forum may do a straw vote on that. 

Best regards

----- Original Message -----
> From: "Jeff Squyres" <jsquyres at cisco.com>
> To: "MPI-WG Fortran working group" <mpiwg-fortran at lists.mpi-forum.org>
> Sent: Thursday, February 18, 2016 7:42:05 PM
> Subject: Re: [MPIWG Fortran] Provide Fortran datatypes if Fortran bindings	not provided?

> On Feb 18, 2016, at 1:31 PM, Jeff Hammond <jeff.science at gmail.com> wrote:
>> > Please tell me why we want to do something different for Fortran.
>> Seems to be a good point.
>> What is mpich doing if there is no accompanying Fortran compiler?
>> Full mpi.h from my Clang MPICH builds with FC=false attached.  Relevant excerpt
>> below.
>> /* Fortran types */
>> #define MPI_COMPLEX           ((MPI_Datatype)MPI_DATATYPE_NULL)
> It looks like OMPI does a mix of setting some Fortran datatypes to (effectively)
> MPI_DATATYPE_NULL and others to what we guess/assume they should be equivalent
> to (e.g., MPI_INTEGER --> MPI_INT).
>> Middleware that compiles but cannot be used in any nontrivial way because
>> MPI_DATATYPE_NULL may (at least with Open-MPI) cause the program to abort.  I
>> don't see a problem in breaking compilation when successful compilation today
>> leads to unsuccessful execution.
> +1
> --
> Jeff Squyres
> jsquyres at cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> _______________________________________________
> mpiwg-fortran mailing list
> mpiwg-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran

Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)

More information about the mpiwg-fortran mailing list