Skip to content

Instantly share code, notes, and snippets.

@RolfRabenseifner
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RolfRabenseifner/68369a61a99082b67c0f to your computer and use it in GitHub Desktop.
Save RolfRabenseifner/68369a61a99082b67c0f to your computer and use it in GitHub Desktop.
Index: changes.tex
===================================================================
--- changes.tex (Revision 1750)
+++ changes.tex (Revision 2015)
@@ -2,7 +2,7 @@
\label{sec:change}
\label{chap:change}
-This annex summarizes changes from the previous version of the
+Annex~\ref{sec:change}.1 summarizes changes from the previous version of the
\MPI/ standard to the version presented by this document.
Only significant changes (i.e., clarifications and new features)
that might either require implementation effort in the
@@ -10,7 +10,307 @@
user's perspective are presented.
Editorial modifications, formatting, typo corrections and
minor clarifications are not shown.
+If not otherwise noted, the section and page references refer to the
+locations of the change or new functionality in this current
+version of the standard.
+Changes in Annexes~\ref{sec:change}.2--\ref{sec:changes:last}
+were already introduced in the corresponding sections
+in previous versions of this standard.
+\section{Changes from Version 3.0 to Version 3.1}
+\label{subsec:30to31}
+
+% The following tickets do not have a change-log entry:
+%
+% 1) The following tickets are passed MPI-3.0-errata tickets:
+%
+% Tickets that need NOT a change-log and do not have one:
+% #347 #348 #354 #359 #367 #385 #387 #390 #393 #403 #405
+% #406 #413 #420 #431 #433 #440 #441 #443 #444 #445 #446
+% #447 #449 #450 #451 #452 #453
+%
+% Tickets that MAY need a change-log and do NOT yet have one:
+% #383 #394
+%
+% Tickets that need a change-log and do NOT yet have one:
+% #345 #415
+%
+% Tickets that need a change-log and have one:
+% #350 #355 #362 #386 #388 #389 #391 #419 #424
+% (#421 belongs to #349, see below)
+%
+% 2) The following tickets are passed MPI-3.1 tickets:
+%
+% Tickets that need NOT a change-log and do not have one:
+% #368 #455
+%
+% Tickets that need a change-log and do NOT yet have one:
+% #357 #400
+%
+% Tickets that need a change-log and have one:
+% #273 #349+#402+#404+#421 #369 #377 #378
+
+\subsection{Fixes to Errata in Previous Versions of \texorpdfstring{\MPI/}{MPI}}
+\label{sec:changes-30-31-errata}
+
+\begin{enumerate}
+
+% 01.--- MPI-3.0-erratum Ticket 388
+\item
+Chapters~\ref{chap:pt2pt}--\ref{chap:binding-2},
+Annex~\ref{sec:lang:fortran-mpi-f08-module} on page~\pageref{sec:lang:fortran-mpi-f08-module},
+and Example~\ref{coll-exX-fortran} on page~\pageref{coll-exX-fortran}, and
+\MPIIIIDOTO/ Chapters 3-17, Annex A.3 on page 707, and Example 5.21 on page 187.
+\newline
+Within the \code{mpi\_f08} Fortran support method, \code{BIND(C)} was removed from
+all \code{SUBROUTINE}, \code{FUNCTION}, and \code{ABSTRACT INTERFACE} definitions.
+
+% 02.--- MPI-3.0-erratum Ticket 415
+\item
+Section~\ref{subsec:pt2pt-status} on page~\pageref{subsec:pt2pt-status}, and
+\MPIIIIDOTO/ Section~3.2.5 on page~30.
+\newline
+The three public fields \const{MPI\_SOURCE}, \const{MPI\_TAG}, and \const{MPI\_ERROR}
+of the Fortran derived type \ftype{TYPE(MPI\_Status)}\cdeclindex{MPI\_Status}
+must be of type \ftype{INTEGER}.
+
+% 03.--- MPI-3.0-erratum Ticket 424
+\item
+Section~\ref{sec:matching-probe} on page~\pageref{sec:matching-probe}, and
+\MPIIIIDOTO/ Section~3.8.2 on page~67.
+\newline
+The flag arguments of the Fortran interfaces of \mpifunc{MPI\_IMPROBE}
+were originally incorrectly defined as \ftype{INTEGER} (instead as \ftype{LOGICAL}).
+
+% 04.--- MPI-3.0-erratum Ticket 345
+\item
+Section~\ref{subsec:context-intracomconst} on page~\pageref{subsec:context-intracomconst}, and
+\MPIIIIDOTO/ Section~6.4.2 on page 237.
+\newline
+In the \code{mpi\_f08} binding of \mpifunc{MPI\_COMM\_IDUP},
+the output argument \mpiarg{newcomm} is declared as \code{ASYNCHRONOUS}.
+
+% 05.--- MPI-3.0-erratum Ticket 345
+\item
+Section~\ref{sec:comm-info} on page~\pageref{sec:comm-info}, and
+\MPIIIIDOTO/ Section~6.4.4 on page 248.
+\newline
+In the \code{mpi\_f08} binding of \mpifunc{MPI\_COMM\_SET\_INFO},
+the intent of \mpiarg{comm} is \code {IN}, and
+the optional output argument \mpiarg{ierror} was missing.
+
+% 06.--- MPI-3.0-erratum Ticket 419
+\item
+Section~\ref{sec:sparsecoll} on page~\pageref{sec:sparsecoll}, and
+\MPIIIIDOTO/ Sections 7.6, on pages 314.
+\newline
+In the case of virtual general graph topolgies (created with \mpifunc{MPI\_CART\_CREATE}),
+the use of neighborhood collective communication is restricted to adjacency matrices
+with the number of edges between any two processes is defined to be the same for
+both processes (i.e., with a symmetric adjacency matrix).
+
+% 07.--- MPI-3.0-erratum Ticket 345
+\item
+Section~\ref{subsec:inquiry-version} on page~\pageref{subsec:inquiry-version}, and
+\MPIIIIDOTO/ Section~8.1.1 on page 335.
+\newline
+In the \code{mpi\_f08} binding of \mpifunc{MPI\_GET\_LIBRARY\_VERSION},
+a typo in the \mpiarg{resultlen} argument was corrected.
+
+% 08.--- MPI-3.0-erratum Ticket 388
+\item
+Sections~\ref{sec:misc-memalloc} (\mpifunc{MPI\_ALLOC\_MEM} and \mpifunc{MPI\_ALLOC\_MEM\_CPTR}),\\
+\ref{sec:winalloc} (\mpifunc{MPI\_WIN\_ALLOCATE} and \mpifunc{MPI\_WIN\_ALLOCATE\_CPTR}),\\
+\ref{sec:winallocshared} (\mpifunc{MPI\_WIN\_ALLOCATE\_SHARED} and \mpifunc{MPI\_WIN\_ALLOCATE\_SHARED\_CPTR}),\\
+\ref{sec:winallocshared} (\mpifunc{MPI\_WIN\_SHARED\_QUERY} and \mpifunc{MPI\_WIN\_SHARED\_QUERY\_CPTR}),\\
+\ref{sec:prof:require} and \ref{sec:prof:complications} (Profiling interface),
+and corresponding sections in \MPIIIIDOTO/.
+\newline
+The linker name concept was substituted by defining specific procedure names.
+
+% 09.--- MPI-3.0-erratum Ticket 362
+\item
+Section~\ref{sec:winalloc} on page~\pageref{sec:winalloc}, and
+\MPIIIIDOTO/ Section~11.2.2 on page 407.
+\newline
+The \infokey{same\_size} info key can be used with all window flavors.
+
+% 10.--- MPI-3.0-erratum Ticket 350
+\item
+Section~\ref{sec:1sided-accumulate} on page~\pageref{sec:1sided-accumulate}, and
+\MPIIIIDOTO/ Section~11.3.4 on page 424.
+\newline
+Origin buffer arguments to \mpifunc{MPI\_GET\_ACCUMULATE} are ignored when the \const{MPI\_NO\_OP} operation is used.
+
+% 11.--- MPI-3.0-erratum Ticket 355
+\item
+Section~\ref{sec:1sided-accumulate} on page~\pageref{sec:1sided-accumulate}, and
+\MPIIIIDOTO/ Section~11.3.4 on page 424.
+\newline
+Clarify the roles of origin, result, and target communication parameters in \mpifunc{MPI\_GET\_ACCUMULATE}.
+
+% 12.--- MPI-3.0-erratum Ticket 383
+\item
+Section~\ref{sec:mpit} on page~\pageref{sec:mpit}, and
+\MPIIIIDOTO/ Section 14.3 on page~561
+\newline
+New paragraph and advice to users clarifying intent of variable names in the tools information interface.
+
+% 13.--- MPI-3.0-erratum Ticket 383
+\item
+Section~\ref{sec:mpit:strings} on page~\pageref{sec:mpit:strings}, and
+\MPIIIIDOTO/ Section~14.3.3 on page~563.
+\newline
+New paragraph clarifying variable name equivalence in the tools information interface.
+
+% 14.--- MPI-3.0-erratum Ticket 383
+\item
+Sections~\ref{sec:mpit:cvar}, \ref{sec:mpit:pvar}, and \ref{sec:mpit:cat} on pages~\pageref{sec:mpit:cvar}, \pageref{sec:mpit:pvar}, and \pageref{sec:mpit:cat}, and
+\newline
+\MPIIIIDOTO/ Sections~14.3.6, 14.3.7, and 14.3.8 on pages 567, 573, and 584.
+\newline
+In functions \mpifunc{MPI\_T\_CVAR\_GET\_INFO}, \mpifunc{MPI\_T\_PVAR\_GET\_INFO}, and \mpifunc{MPI\_T\_CATEGORY\_GET\_INFO}, clarification of parameters that must be identical for equivalent control variable / performance variable / category names across connected processes.
+
+% 15.--- MPI-3.0-erratum Ticket 391
+\item
+Section~\ref{sec:mpit:pvar} on page~\pageref{sec:mpit:pvar}, and
+\MPIIIIDOTO/ Section~14.3.7 on page~573.
+\newline
+Clarify return code
+\mpifuncindex{MPI\_T\_PVAR\_START}%
+\mpifuncindex{MPI\_T\_PVAR\_STOP}%
+\mpifuncindex{MPI\_T\_PVAR\_RESET}%
+of \mpiskipfunc{MPI\_T\_PVAR\_\textrm{\{}START,STOP,RESET\textrm{\}}} routines.
+
+% 16.--- MPI-3.0-erratum Ticket 386
+\item
+Section~\ref{sec:mpit:pvar} on page~\pageref{sec:mpit:pvar}, and
+\MPIIIIDOTO/ Section~14.3.7 on page~579, line~7.
+\newline
+Clarify the return code when bad handle is passed to
+\mpifuncindex{MPI\_T\_PVAR\_HANDLE\_FREE}%
+\mpifuncindex{MPI\_T\_PVAR\_START}%
+\mpifuncindex{MPI\_T\_PVAR\_STOP}%
+\mpifuncindex{MPI\_T\_PVAR\_READ}%
+\mpifuncindex{MPI\_T\_PVAR\_WRITE}%
+\mpifuncindex{MPI\_T\_PVAR\_RESET}%
+\mpifuncindex{MPI\_T\_PVAR\_READRESET}%
+an \mpiskipfunc{MPI\_T\_PVAR\_*} routine.
+
+% 17.--- MPI-3.0-erratum Ticket 388
+\item
+Section~\ref{f90:extended} on page~\pageref{f90:extended}, and
+\MPIIIIDOTO/ Section~17.1.4 on page~603.
+\newline
+The advice to implementors at the end of the section was rwritten and moved into the following section.
+
+% 18.--- MPI-3.0-erratum Ticket 388
+\item
+Section~\ref{sec:f90:linker-names} on page~\pageref{sec:f90:linker-names}, and
+\MPIIIIDOTO/ Section~17.1.5 on page~605.
+\newline
+The section was fully rewritten. The linker name concept was substituted by defining specific procedure names.
+
+% 19.--- MPI-3.0-erratum Ticket 388
+\item
+Section~\ref{sec:f90:different-fortran-versions} on page~\pageref{sec:f90:different-fortran-versions}, and
+\MPIIIIDOTO/ Section~17.1.6 on page~611.
+\newline
+The requirements on \code{BIND(C)} procedure interfaces are removed.
+
+% 20.--- MPI-3.0-erratum Ticket 389
+\item
+Annexes~\ref{sec:lang:c-mpi-interfaces}, \ref{sec:lang:fortran-mpi-f08-module}, and~\ref{sec:lang:fortran-mpifh-and-mpi-module}
+on pages~\pageref{sec:lang:c-mpi-interfaces}, \pageref{sec:lang:fortran-mpi-f08-module}, and~\pageref{sec:lang:fortran-mpifh-and-mpi-module}, and
+\newline
+\MPIIIIDOTO/ Annexes~A.2, A.3, and A.4 on pages~685, 707, and 756.
+\newline
+The predefined callback \mpifunc{MPI\_CONVERSION\_FN\_NULL} was added to all three annexes.
+
+% 21.--- MPI-3.0-erratum Ticket 345
+\item
+Annex~\ref{app:subsec:f08:context} on page~\pageref{app:subsec:f08:context}, and
+\MPIIIIDOTO/ Annex~A.3.4 on page~724.
+\newline
+In the \code{mpi\_f08} binding
+\mpifuncindex{MPI\_COMM\_DUP\_FN}%
+\mpifuncindex{MPI\_COMM\_NULL\_COPY\_FN}%
+\mpifuncindex{MPI\_COMM\_NULL\_DELETE\_FN}%
+\mpifuncindex{MPI\_TYPE\_DUP\_FN}%
+\mpifuncindex{MPI\_TYPE\_NULL\_COPY\_FN}%
+\mpifuncindex{MPI\_TYPE\_NULL\_DELETE\_FN}%
+\mpifuncindex{MPI\_WIN\_DUP\_FN}%
+\mpifuncindex{MPI\_WIN\_NULL\_COPY\_FN}%
+\mpifuncindex{MPI\_WIN\_NULL\_DELETE\_FN}%
+of\\
+\mpiskipfunc{MPI\_\textrm{\{}COMM$|$TYPE$|$WIN\textrm{\}}\_\textrm{\{}DUP$|$NULL\_COPY$|$NULL\_DELETE\textrm{\}}\_FN},
+all \code{INTENT(...)} information must be removed.
+
+\end{enumerate}
+
+\subsection{Changes in \texorpdfstring{\MPIIIIDOTI/}{MPI-3.1}}
+\label{sec:changes-30-31}
+
+\begin{enumerate}
+
+% 01.--- MPI-3.0 Tickets 349, 402, 404, 421
+\item
+Sections~\ref{sec:macros} and~\ref{subsec:pt2pt-addfunc} on pages~\pageref{sec:macros} and~\pageref{subsec:pt2pt-addfunc}.
+\newline
+The use of the intrinsic operators ``\code{+}'' and ``\code{-}'' for absolute addresses is substituted by \mpifunc{MPI\_AINT\_ADD} and \mpifunc{MPI\_AINT\_DIFF}. In C, they can be implemented as macros.
+
+% 02.--- MPI-3.1 Ticket 357
+\item
+Sections~\ref{subsec:inquiry-version}, \ref{sec:inquiry-startup}, and~\ref{sec:ei-threads}
+on pages~\pageref{subsec:inquiry-version}, \pageref{sec:inquiry-startup}, and~\pageref{sec:ei-threads}.
+\newline
+The routines \mpifunc{MPI\_INITIALIZED}, \mpifunc{MPI\_FINALIZED},
+\mpifunc{MPI\_QUERY\_THREAD}, \mpifunc{MPI\_IS\_THREAD\_MAIN},
+\mpifunc{MPI\_GET\_VERSION}, and \mpifunc{MPI\_GET\_LIBRARY\_VERSION}
+are callable from threads without restriction (in the sense of
+MPI\_THREAD\_MULTIPLE), irrespective of the actual level of thread support
+provided, in the case where the implementation supports threads.
+
+% 03.--- MPI-3.1 Ticket 369
+\item
+Section~\ref{chap:one-side-2:win_create} on page~\pageref{chap:one-side-2:win_create}.
+\newline
+The \infokey{same\_disp\_unit} info key was added for use in RMA window creation routines.
+
+% 04.--- MPI-3.1 Ticket 273
+\item
+Sections~\ref{sec:io-explicit} and~\ref{sec:io-indiv-ptr}
+on pages~\pageref{sec:io-explicit} and~\pageref{sec:io-indiv-ptr}.
+\newline
+Added \mpifunc{MPI\_File\_iread\_at\_all}, \mpifunc{MPI\_File\_iwrite\_at\_all},
+\mpifunc{MPI\_File\_iread\_all}, and \mpifunc{MPI\_File\_iwrite\_all}
+
+% 05.--- MPI-3.1 Ticket 378
+\item
+Sections~\ref{sec:mpit:cvar}, \ref{sec:mpit:pvar}, and \ref{sec:mpit:cat}
+on pages~\pageref{sec:mpit:cvar}, \pageref{sec:mpit:pvar}, and \pageref{sec:mpit:cat}.
+\newline
+Clarified that \code{NULL} parameters can be provided
+\mpifuncindex{MPI\_T\_CVAR\_GET\_INFO}%
+\mpifuncindex{MPI\_T\_PVAR\_GET\_INFO}%
+\mpifuncindex{MPI\_T\_CATEGORY\_GET\_INFO}%
+in\\
+\mpiskipfunc{MPI\_T\_\textrm{\{}CVAR$|$PVAR$|$CATEGORY\textrm{\}}\_GET\_INFO} routines.
+
+% 06.--- MPI-3.1 Ticket 377 and 400
+\item
+Sections~\ref{sec:mpit:cvar}, \ref{sec:mpit:pvar}, \ref{sec:mpit:cat}, and~\ref{sec:mpit:retcodes}
+on pages~\pageref{sec:mpit:cvar}, \pageref{sec:mpit:pvar}, \pageref{sec:mpit:cat}, and~\pageref{sec:mpit:retcodes}.
+\newline
+New routines \mpifunc{MPI\_T\_CVAR\_GET\_INDEX}, \mpifunc{MPI\_T\_PVAR\_GET\_INDEX},
+\mpifunc{MPI\_T\_CATEGORY\_GET\_INDEX}, were added to support retrieving
+indices of variables and categories.
+The error codes \const{MPI\_T\_ERR\_INVALID} and \const{MPI\_T\_ERR\_INVALID\_NAME}
+were added to indicate invalid uses of the interface.
+
+\end{enumerate}
+
+
\section{Changes from Version 2.2 to Version 3.0}
\label{subsec:22to30}
@@ -60,7 +360,6 @@
\item
Sections~\ref{sec:fortran-binding-issues} and~\ref{sec:c-binding-issues}
on pages~\pageref{sec:fortran-binding-issues} and~\pageref{sec:c-binding-issues}, and
-\newline
\MPIIIDOTII/ Section~2.6.2 on page~17, lines~41-42,
Section~2.6.3 on page~18, lines~15-16, and
Section~2.6.4 on page~18, lines~40-41.
@@ -81,7 +380,6 @@
\pageref{table:io:extsizes},
%-REMOVED-C++ \pageref{tab:cpp-basic-datatypes},
and \pageref{subsec:annexa-const}, and
-\newline
\MPIIIDOTII/ Sections 3.2.2, 5.9.2, 13.5.2 Table 13.2, 16.1.16 Table 16.1, and Annex A.1.1 on pages 27, 164, 433, 472 and 513
\newline
This is an \MPIIIDOTII/ erratum:
@@ -105,7 +403,6 @@
% 04.--- MPI-3.0 Ticket 192 = MPI-2.2 ERRATUM
\item
Section~\ref{subsec:topol-inquiry} on page~\pageref{subsec:topol-inquiry}, and
-\newline
\MPIIIDOTII/, Section 7.5.5 on page 257, C++ interface on page 264, line 3.
\newline
This is an \MPIIIDOTII/ erratum:
@@ -117,7 +414,6 @@
% 05.--- MPI-3.0 Ticket 171 = MPI-2.2 ERRATUM
\item
Section~\ref{subsec:ext32}, Table~\ref{table:io:extsizes} on page~\pageref{table:io:extsizes}, and
-\newline
\MPIIIDOTII/, Section 13.5.3, Table 13.2 on page 433.
\newline
This was an \MPIIIDOTII/ erratum:
@@ -628,7 +924,6 @@
\item
Section~\ref{subsec:context-cachecomm} on page~\pageref{subsec:context-cachecomm}.
\newline
-Section 6.7.2 on page 226.
It was clarified that in Fortran, the flag values
returned by a \mpiarg{comm\_copy\_attr\_fn} callback,
% RAB: The predefined callbacks are "constant" "function" pointers, therefore in both indexes
@@ -937,6 +1232,7 @@
\end{enumerate}
\section{Changes from Version 2.0 to Version 2.1}
+\label{sec:changes:last}
\begin{enumerate}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment