<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes, but note this language about language interoperability, from page 659, lines 4ff:<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">If a datatype defined in one language is used for a communication call in another language, then the message sent will be identical to the message that would be sent from the first language: the same communication buffer is accessed, and the same representation conversion is per- formed, if needed. All predefined datatypes can be used in datatype constructors in any language.</div></blockquote><div class=""><br class=""></div><div class="">There is more on page 628.  Some comments on this page are references to systems where one language used 128-bits for a 16-byte double and a different language used 80-bits for a 16 byte double (wasting 6 bytes, but keeping simple alignment rules).  </div><div class=""><br class=""></div><div class="">This means that MPI_REAL2 can be used *now* by MPI implementations if any of the supported compilers provide a 2-byte real format.  In the extremely unlikely event that C and Fortran supported different formats of 2-byte floats, MPI_REAL2 would refer to the Fortran version, and a new type would be needed for C.</div><div class=""><br class=""></div><div class="">Jeff’s idea has merit, particularly if the relevant standard is nearly universally adopted (there used to be many more floating point formats, which is why MPI didn’t require a specific one).</div><div class=""><br class=""></div><div class="">Bill</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">William Gropp<br class="">Interim Director and Chief Scientist, NCSA<br class="">Thomas M. Siebel Chair in Computer Science<br class="">University of Illinois Urbana-Champaign</div><br class="Apple-interchange-newline"></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 22, 2017, at 12:24 AM, Atsushi HORI <<a href="mailto:ahori@riken.jp" class="">ahori@riken.jp</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hello, Bill,<br class=""><br class=""><blockquote type="cite" class="">2017/06/22 14:03、William Gropp <<a href="mailto:wgropp@illinois.edu" class="">wgropp@illinois.edu</a>> wrote;<br class=""><br class="">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 class=""></blockquote><br class="">I did not notice of that and there was no discussion about MPI_REAL2 (unless I missed).<br class=""><br class="">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 class=""><br class=""><br class="">— from p25, MPI 3.1,<br class="">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 class=""><br class="">-----<br class="">Atsushi HORI<br class=""><a href="mailto:ahori@riken.jp" class="">ahori@riken.jp</a><br class=""><a href="http://aics-sys.riken.jp" class="">http://aics-sys.riken.jp</a><br class=""><br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">mpiwg-p2p mailing list<br class="">mpiwg-p2p@lists.mpi-forum.org<br class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-p2p</div></div></blockquote></div><br class=""></div></div></body></html>