[Mpi-forum] Giving up on C11 _Generic
schuchart at hlrs.de
Thu Aug 15 03:44:08 CDT 2019
On 8/13/19 5:54 AM, Jed Brown via mpi-forum wrote:
> "Jeff Squyres \(jsquyres\) via mpi-forum" <mpi-forum at lists.mpi-forum.org> writes:
>> Let me ask a simple question: how will users to write portable MPI programs in C with large count values?
>> Answer: they will explicitly call MPI_Send_x(), and not rely on C11 _Generic.
> Few packages will accept a hard dependency on MPI-4 for at least 10
> years. MS-MPI still doesn't fully support MPI-2.1, for example, and
> PETSc only recently began requiring MPI-2.0.
That is a sad truth: I just had a colleague asking me about a >6y old
Open MPI release...
> I'm not taking a position on C11 _Generic in the standard, but it would
> significantly reduce the configure complexity for apps to upgrade to
> MPI_Count without dropping support for previous standards.
I don't see how C11 _Generic will make life easier. if an application
expects to transfer >2G elements it will eventually transition to
MPI_Count. With C11 _Generic (as originally proposed), checks are
required to ensure that both the compiler and the MPI implementation
support it to avoid silent corruption. Without _Generic, the compiler
has no role in this and compilation will fail if the MPI implementation
does not offer the MPI_*_x calls. The error is thus obvious. Thus, the
application has to have configure checks and wrapper calls to properly
support large transfers. And if they are not needed then there is no
reason to use the MPI_*_x calls in the first place.
The point Jeff is making below is totally valid.
>> Which then raises the question: what's the point of using C11
>> _Generic? Its main functionality can lead to [potentially] silent
>> run-time errors, and/or require additional error checking in every
>> single code path by the implementation. That just seems like bad
>> design, IMNSHO. That's why the WG decided to bring this to the Forum
>> list (especially given the compressed timeframe for MPI-4).
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
More information about the mpi-forum