<div><div dir="auto">Note that I'm only referring to IEEE storage format. We should not require compliance with IEEE floating-point arithmetic in reduction operators, although it's obviously nice if implementations provide it. </div><div dir="auto"><br></div><div dir="auto">Jeff</div><br><div class="gmail_quote"><div>On Wed, Jun 21, 2017 at 10:40 PM Jeff Hammond <<a href="mailto:jeff.science@gmail.com">jeff.science@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would like to move beyond languages here and have MPI define IEEE754 types. So we'd have e.g. MPI_IEEE32BIT for single, etc.<br>
<br>
MPI would do the math according to IEEE in whatever language the implementation uses. Languages would need to have a compatible type to allow the user to manipulate the resulting buffers.<br>
<br>
Jeff<br>
<br>
Sent from my iPhone<br>
<br>
> On Jun 21, 2017, at 10:24 PM, Atsushi HORI <<a href="mailto:ahori@riken.jp" target="_blank">ahori@riken.jp</a>> wrote:<br>
><br>
> Hello, Bill,<br>
><br>
>> 2017/06/22 14:03、William Gropp <<a href="mailto:wgropp@illinois.edu" target="_blank">wgropp@illinois.edu</a>> wrote;<br>
>><br>
>> On timing, note that MPI already defined optional types.  One of these is MPI_REAL2, which is a 2-byte floating point type - that is, FP16. (See p25, line 36, 177, line 2, 540 line 10, and 674 line 38).  Was MPI_REAL2 discussed?<br>
><br>
> I did not notice of that and there was no discussion about MPI_REAL2 (unless I missed).<br>
><br>
> I checked 3.1 standard as you pointed out, but MPI_REAL2 is defined as a Fortran type. I believe that there is no C predefined type for FP16 (or 'MPI_HALF') in MPI 3.1. This is just because ISO C does not define FP16 yet.<br>
><br>
><br>
> — from p25, MPI 3.1,<br>
> MPI requires support of these datatypes, which match the basic datatypes of Fortran and ISO C. Additional MPI datatypes should be provided if the host language has additional data types: MPI_DOUBLE_COMPLEX for double precision complex in Fortran declared to be of type DOUBLE COMPLEX; MPI_REAL2, MPI_REAL4, and MPI_REAL8 for Fortran reals, declared to be of type REAL*2, REAL*4 and REAL*8, respectively; MPI_INTEGER1, MPI_INTEGER2, and MPI_INTEGER4 for Fortran integers, declared to be of type INTEGER*1, INTEGER*2, and INTEGER*4, respectively; etc.<br>
><br>
> -----<br>
> Atsushi HORI<br>
> <a href="mailto:ahori@riken.jp" target="_blank">ahori@riken.jp</a><br>
> <a href="http://aics-sys.riken.jp" rel="noreferrer" target="_blank">http://aics-sys.riken.jp</a><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> mpiwg-p2p mailing list<br>
> <a href="mailto:mpiwg-p2p@lists.mpi-forum.org" target="_blank">mpiwg-p2p@lists.mpi-forum.org</a><br>
> <a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-p2p" rel="noreferrer" target="_blank">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-p2p</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>