5.2.1.2. Short float extension
5.2.1.2.1. Overview
The shortfloat extension provides MPI datatypes corresponding to
short / half-precision floating point language types. Depending on
which types the compiler supports, it defines some or all of:
MPIX_C_FLOAT16— for the C type_Float16(ISO/IEC TS 18661-3:2015). This name and meaning match MPICH.MPIX_SHORT_FLOAT— for the C/C++ typeshort float.MPIX_C_SHORT_FLOAT_COMPLEX— for the C typeshort float _Complex.MPIX_CXX_SHORT_FLOAT_COMPLEX— for the C++ typestd::complex<short float>.
These datatypes were proposed for (but not accepted into) the MPI
standard, so they carry the MPIX_ prefix. See the extension’s
README.md in the source tree
(ompi/mpiext/shortfloat/README.md) and MPI Forum issue 65 for background.
Because this extension only adds datatype handles (constants), it does not provide any functions, and therefore has no manual pages.
5.2.1.2.2. When it is built
The shortfloat extension is built by default, but only when the
compiler provides a suitable short / half-precision floating point
type. Specifically, Open MPI’s configure builds it when either:
the compiler natively supports a
short floattype; orOpen MPI can provide an equivalent 16-bit type (
opal_short_float_t, typically mapped to_Float16).
If neither is available, the extension is silently omitted — there
is no dedicated configure option to force it on, since it depends
entirely on compiler support. As with all extensions, it can be
excluded explicitly with --disable-mpi-ext or by omitting it from
an explicit --enable-mpi-ext=LIST. See the extensions
overview for details.
5.2.1.2.3. Availability at run time
When the extension is compiled in, <mpi-ext.h> defines the
preprocessor macro OMPI_HAVE_MPI_EXT_SHORTFLOAT to 1.
Applications should test this macro before using any of the MPIX_
datatypes above, both because the extension may have been omitted (if
the compiler lacked a short float type) and to remain portable to other
MPI implementations. Note that the individual datatype handles that are
defined depend on which language types were available at build time.