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.  

Note also that these are the versions of the *standard*, not the version of a particular implementation.  I agree with never using the version of an implementation for the points you raise, but I don't believe that this applies to the version of a standard.  (E.g., I'd never recommend using the MPICH version as a test.)

Bill

On Jul 29, 2011, at 5:36 PM, Jed Brown wrote:

On Fri, Jul 29, 2011 at 09:44, Gropp, William D <wgropp@illinois.edu> wrote:
Much better would be to use the MPI macros introduced to deal with exactly this problem.

Are you just referring to the MPI_VERSION/MPI_SUBVERSION macros or is there a macro that specifically indicates the availability of MPI_Exscan()? (I haven't seen any such macro in MPICH2 or OMPI.)

We have avoided using versions for compiler/library feature checks because version numbers are not self-documenting and because it only takes one implementer mistake to make the versions useless. On the other hand, all the feature tests make configure slow, but hopefully that will be mostly resolved once we get parallel configure working.

William Gropp
Director, Parallel Computing Institute
Deputy Director for Research
Institute for Advanced Computing Applications and Technologies
Paul and Cynthia Saylor Professor of Computer Science
University of Illinois Urbana-Champaign