Lisandro raises an interesting point.  I just checked the MPI_VERSION defined on the currently released IBM BlueGene/P driver, and I was surprised to see 2.1 defined, given that the BlueGene doesn't support dynamic process control (though I guess otherwise it is basically a full MPI-2), from the developer's guide:

"The implementation of MPI on the Blue Gene/P system is the MPICH2 standard that was developed by Argonne National Labs. For more information about MPICH2, see the Message Passing Interface (MPI) standard Web site at:

http://www-unix.mcs.anl.gov/mpi/

A function of the MPI-2 standard that is not supported by Blue Gene/P is dynamic process management (creating new MPI processes).16 However, the various thread modes are supported".


I think this is worth considering carefully as MPI-3 is approved and we start to see vendor implementations of some of its cooler features show up on our systems.  Perhaps in addition to version numbers specific 'features' could be macro-defined by the standard: MPI_HAS_EXSCAN, etc...?  This might be a reasonable compromise between the two approaches.


On Tue, Aug 2, 2011 at 4:56 AM, Lisandro Dalcin <dalcinl@gmail.com> wrote:
On 31 July 2011 14:34, William Gropp <wgropp@illinois.edu> wrote:
> I'm referring to the MPI_VERSION and MPI_SUBVERSION.
> I'm in general a supporter of feature checks, but in the case of MPI, the
> documentation is very precise about the content of each version and there
> are comprehensive tests for MPI implementations that have ensured compliance
> with the spec.  The MPI Forum has repeatedly rejected any MPI subset,
> ensuring that MPI_VERSION and MPI_SUBVERSION can be used.

So, suppose an MPI implementation advertises 1.3 compliance (by
defining  MPI_VERSION as 1 and MPI_SUBVERSION as 3), and implements
some calls from MPI 2.0 like MPI_Exscan() ? Using the version macros
would prevent PETSc to use the MPI_Exscan() available in the
implementation as an extension... Or does "The MPI Forum has
repeatedly rejected any MPI subset" means that such implementations
are not conforming with the MPI std?


--
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169