Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Compile-time MPI_Datatype checking
From: Dmitri Gribenko (gribozavr_at_[hidden])
Date: 2012-10-07 14:25:35


On Thu, May 31, 2012 at 2:38 PM, Jeff Squyres <jsquyres_at_[hidden]> wrote:
> On May 31, 2012, at 7:29 AM, Jeff Squyres wrote:
>
>>>> We should have AC macros for all of these already.
>>>
>>> OK, I'll try find them to support (1) usecase described below.
>>
>> No, I'll find them -- sorry, I meant to look them up before I sent the last mail. Let me look them up and get back to you. Our configury is quite complicated, and I know the right places to look. :-)
>
> Ok, this might get a little complicated. You'll probably need to use a pair of them (this is trunk only; it's different in v1.6 because we wholly revamped the trunk's Fortran support recently):
>
> 1. You can see all the OMPI_HAVE_FORTRAN_<type>'s at the top of mpi.h.in. These indicate whether the Fortran compiler supports these types or not.
>
> 2. We currently define *one* Fortran type in mpi.h.in: ompi_fortran_integer_t. It looks like we need to add the rest of them: ompi_fortran_<type>_t (these are all in opal/include/opal_config.h, but mpi.h is a standalone, user-includeable file, which is why it replicates a subset of all the configure-generated results). Here's a first stab at what I think will be needed in mpi.h.in:

Hello Jeff,

I would like to continue this discussion. Corresponding changes in
Clang are already in SVN and the feature should be released with the
upcoming Clang 3.2.

I tried to follow your advice about Fortran datatypes and updated the
patch accordingly (attached). This patch is against OpenMPI 1.9.
Please review.

Is there any chance we can get a less invasive (header-only, without
autotools magic for Fortran datatypes support) change in the OpenMPI
1.7?

> Does clang link together with gfortran? I.e., does the following work:
>
> ./configure CC=clang CXX=clang++ FC=gfortran ...

Seems like it works.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr_at_[hidden]>*/