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. A On Tue, Aug 2, 2011 at 4:56 AM, Lisandro Dalcin <dalcinl at gmail.com> wrote: > On 31 July 2011 14:34, William Gropp <wgropp at 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20110802/a60b4f94/attachment.html>
