Stuart Midgley wrote:
The other issue we are concerned about is that an ABI doesn't resolve
one of the central issues. While you might have different MPI's with
the same ABI, different mpi's behave differently and can cause a code to
behave differently. An ISV would still have to verify their code
against all MPI's they wish to support. For example, an ISV might, by
accident, make an assumption about the small message size and their code
might hang on different MPI's.
This is an artifact of relying on a standard.
For instance, we also rely on our compilers to be compliant to the C++
standard. Sometimes we stumble on different interpretations of the
standard by multiple compilers (although being compliant) and thus
different behaviour of different platforms. But by default we suppose
all our compliant. This is far less work than making no such assumption
and the number of problems due to this assumption are low (and controlable).
So the fact that multiple implementations of the same standard might
behave differently should not prohibit the use of a standard.
toon