Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Fwd: Re: [Score-P support] Compile errors of Fedora rawhide
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2014-03-11 13:30:19


The safest thing for scoreP (and *any* MPI application/middleware) is to not wholly rely on the MPI_VERSION macros.

>From a theoretical sense, the MPI_VERSION macro should be sufficient.

But in reality, the upgrade of an MPI implementation to support all of MPI-3 is a gradual thing and takes time. Hence, OMPI 1.7.4 supports *part* of MPI-3, but not all of it. There's simply no way to indicate this "partial MPI-3 support" with the simplistic MPI_VERSION macro -- that macro is pretty much an all-or-nothing value. Which simply doesn't reflect reality. Sorry. :-\

If it helps, you might try an OMPI 1.7.5rc (I'm due to make rc2 later this afternoon). 1.7.5 should be full MPI-3 compliant -- if there are any const's missing, those are bugs.

That being said, to fully support OMPI 1.7.4, more fine-grained configure checks for const will likely be required.

(keep in mind that this same thing is going to happen for MPI 3.1, MPI 4.0, ...etc.)

On Mar 11, 2014, at 1:14 PM, Orion Poplawski <orion_at_[hidden]> wrote:

> FYI -
>
> Looks like the mix of MPI 3 compliant and older declarations is causing a bit of an issue for Score-P support. The current Score-P code bases adding the const qualifiers on MPI_VERSION >= 3. But openmpi 1.7.4 is still MPI_VERSION 2 (SUB 2). If I change scorep to add the const qualifiers for openmpi 1.7.4, then it has trouble with some different routines that are missing the const qualifiers, for example MPI_Address and MPI_Info_set. It's tough to support a mix like this.
>
> - Orion
>
> -------- Original Message --------
> Subject: Re: [Score-P support] Compile errors of Fedora rawhide
> Date: Tue, 11 Mar 2014 14:16:46 +0100
> From: Daniel Lorenz <d.lorenz_at_[hidden]>
> To: Orion Poplawski <orion_at_[hidden]>
> CC: Score-P Support <support_at_[hidden]>
>
> Hi,
>
> I can reproduce the results with openmpi 1.7.4. It seems that openmpi 1.7.4 added const qualifiers to some MPI function parameters which cause this error. For MPI 3 many function arguments get such a const qualifier, and openmpi 1.7.4 added some MPI 3 features. However, not all function signatures in openmpi 1.7.4 are changed to the MPI 3 standard. Thus, there is a mixture of MPI 2 compliant functions and MPI 3 compliant functions. To support such mixtures we need to add a couple of additional checks. If you want to use the current Score-P with openmpi 1.7.4, the easiest workaround you could try is to build Score-P with the mpi.h header from openmpi 1.7.3. However there is no guarantee that it works. Another option is to adapt the Score-P MPI function wrapper signatures to the openmpi 1.7.4.
>
> Regards,
> Daniel
>
> On 11 Mar 2014, at 03:35, Orion Poplawski <orion_at_[hidden]> wrote:
>
>> scorep 1.2.3 is compiling fine on Fedora 20, but failing on Fedora
>> Rawhide during the openmpi build. Full build log is here:
>> http://kojipkgs.fedoraproject.org//work/tasks/191/6620191/build.log
>>
>> errors are like:
>>
>> ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Cg.c:334:1: error:
>> conflicting types for 'MPI_Group_excl'
>> MPI_Group_excl( MPI_Group group, int n, SCOREP_MPI_CONST_DECL int*
>> ranks, MPI_Group* newgroup )
>> ^
>> In file included from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi.h:32:0,
>> from
>> ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Cg.c:44:
>> /usr/include/openmpi-i386/mpi.h:1451:20: note: previous declaration of
>> 'MPI_Group_excl' was here
>> OMPI_DECLSPEC int MPI_Group_excl(MPI_Group group, int n, const int
>> ranks[],
>> ^
>> ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Cg.c:371:1: error:
>> conflicting types for 'MPI_Group_incl'
>> MPI_Group_incl( MPI_Group group, int n, SCOREP_MPI_CONST_DECL int*
>> ranks, MPI_Group* newgroup )
>> ^
>> In file included from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi.h:32:0,
>> from
>> ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Cg.c:44:
>> /usr/include/openmpi-i386/mpi.h:1455:20: note: previous declaration of
>> 'MPI_Group_incl' was here
>> OMPI_DECLSPEC int MPI_Group_incl(MPI_Group group, int n, const int
>> ranks[],
>> ^
>>
>> one difference is openmpi 1.7.4 instead of 1.7.3. Let me know what else
>> I can provide.
>>
>> - Orion
>>
>> --
>> Orion Poplawski
>> Technical Manager 303-415-9701 x222
>> NWRA/CoRA Division FAX: 303-415-9702
>> 3380 Mitchell Lane orion_at_[hidden]
>> Boulder, CO 80301 http://www.cora.nwra.com
>> _______________________________________________
>> Support mailing list for Score-P
>> support_at_[hidden]
>> https://mailman.zih.tu-dresden.de/groups/listinfo/scorep-support
>
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: http://www.open-mpi.org/community/lists/devel/2014/03/14320.php

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/