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: Orion Poplawski (orion_at_[hidden])
Date: 2014-03-11 18:55:42


On 03/11/2014 11:30 AM, Jeff Squyres (jsquyres) wrote:
> 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.
>

Thanks for the help. However, with 1.7.5rc2 I'm still seeing:

../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Misc.c:64:1: error: conflicting
types for 'MPI_Address'
  MPI_Address( SCOREP_MPI_CONST_DECL void* location, MPI_Aint* address )
  ^
In file included from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi.h:32:0,
                  from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Misc.c:45:
/usr/include/openmpi-x86_64/mpi.h:1176:44: note: previous declaration of
'MPI_Address' was here
  OMPI_DECLSPEC int MPI_Address(void *location, MPI_Aint *address)
                                             ^
../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Misc.c:651:1: error:
conflicting types for 'MPI_Info_set'
  MPI_Info_set( MPI_Info info, SCOREP_MPI_CONST_DECL char* key,
SCOREP_MPI_CONST_DECL char* value )
  ^
In file included from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi.h:32:0,
                  from ../../build-mpi/../src/adapters/mpi/SCOREP_Mpi_Misc.c:45:
/usr/include/openmpi-x86_64/mpi.h:1512:44: note: previous declaration of
'MPI_Info_set' was here
  OMPI_DECLSPEC int MPI_Info_set(MPI_Info info, char *key, char *value);
                                             ^
The MPI-3 spec seems to side with Score-P here for MPI_Info_set. I couldn't
find a definition for MPI_Address in the MPI-3 spec. Mpich appears to delare
it const void *location.

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

At this point I'm hoping to just skip 1.7.4 and move to 1.7.5.

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

Yup.

- Orion

>
>
>
>
> 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
>
>

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion_at_[hidden]
Boulder, CO 80301                   http://www.nwra.com