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 <or...@cora.nwra.com> 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.lor...@grs-sim.de>
To: Orion Poplawski <or...@cora.nwra.com>
CC: Score-P Support <supp...@score-p.org>
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 <or...@cora.nwra.com> 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 or...@cora.nwra.com
Boulder, CO 80301 http://www.cora.nwra.com
_______________________________________________
Support mailing list for Score-P
supp...@score-p.org
https://mailman.zih.tu-dresden.de/groups/listinfo/scorep-support
_______________________________________________
devel mailing list
de...@open-mpi.org
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 or...@nwra.com
Boulder, CO 80301 http://www.nwra.com