Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Index: terms-2.tex #421 part 1 r1931
===================================================================
--- terms-2.tex (Revision 1930)
+++ terms-2.tex (Revision 1931)
@@ -571,6 +571,12 @@
conversion.
There is the \mpi/ constant \consti{MPI\_BOTTOM} to indicate
the start of the address range.
+For retrieving absolute addresses or any calculation with absolute addresses,
+one should use the routines and functions provided in \sectionref{subsec:pt2pt-addfunc}.
+\sectionref{subsec:pt2pt-segmented} provides additional rules for the correct
+use of absolute addresses. For expressions with relative displacements
+or other usage without absolute addresses, intrinsic operators
+(e.g., \code{+}, \code{-}, \code{*}) can be used.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{File Offsets}
_________________________________________________________________________
Index: terms-2.tex #421 part 1 r1932 (see also modification in r1956 below)
===================================================================
--- terms-2.tex (Revision 1931)
+++ terms-2.tex (Revision 1932)
@@ -864,7 +864,10 @@
An implementation is allowed to implement \mpifunc{MPI\_WTIME},
\mpifunc{MPI\_WTICK}, \mpifunc{PMPI\_WTIME},
-\mpifunc{PMPI\_WTICK}, and the handle-conversion functions
+\mpifunc{PMPI\_WTICK},
+\mpifunc{MPI\_AINT\_ADD}, \mpifunc{MPI\_AINT\_DIFF},
+\mpifunc{PMPI\_AINT\_ADD}, \mpifunc{PMPI\_AINT\_DIFF},
+and the handle-conversion functions
(\cfunc{MPI\_Group\_f2c}, etc.) in Section~\ref{sec:misc-handleconvert}, and
no others, as macros in C.
_________________________________________________________________________
Index: terms-2.tex #421 part 2 r1932 modified with r1956
===================================================================
--- terms-2.tex (Revision 1955)
+++ terms-2.tex (Revision 1956)
@@ -864,11 +864,11 @@
\subsection{Functions and Macros}
\label{sec:macros}
-An implementation is allowed to implement \mpifunc{MPI\_WTIME},
-\mpifunc{MPI\_WTICK}, \mpifunc{PMPI\_WTIME},
-\mpifunc{PMPI\_WTICK},
-\mpifunc{MPI\_AINT\_ADD}, \mpifunc{MPI\_AINT\_DIFF},
-\mpifunc{PMPI\_AINT\_ADD}, \mpifunc{PMPI\_AINT\_DIFF},
+An implementation is allowed to implement
+\mpifunc{MPI\_WTIME}, \mpifunc{PMPI\_WTIME},
+\mpifunc{MPI\_WTICK}, \mpifunc{PMPI\_WTICK},
+\mpifunc{MPI\_AINT\_ADD}, \mpifunc{PMPI\_AINT\_ADD},
+\mpifunc{MPI\_AINT\_DIFF}, \mpifunc{PMPI\_AINT\_DIFF},
and the handle-conversion functions
(\cfunc{MPI\_Group\_f2c}, etc.) in Section~\ref{sec:misc-handleconvert}, and
no others, as macros in C.
_________________________________________________________________________
Index: terms-2.tex #431
===================================================================
--- terms-2.tex (Revision 1933)
+++ terms-2.tex (Revision 1934)
@@ -557,11 +557,12 @@
\end{implementors}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Addresses}
+\subsection{Absolute Addresses and Relative Address Displacements}
Some \MPI/ procedures use \emph{address} arguments that represent an absolute
-address in the calling program.
-The datatype of such an argument
+address in the calling program,
+or relative displacement arguments that represent differences of two absolute addresses.
+The datatype of such arguments
\cdeclmainindex{MPI\_Aint}%
is \type{MPI\_Aint} in C and \ftype{INTEGER
(KIND=\const{MPI\_ADDRESS\_KIND})}\cdeclmainindex{MPI\_ADDRESS\_KIND} in Fortran.
_________________________________________________________________________
Index: terms-2.tex #447
===================================================================
--- terms-2.tex (Revision 1917)
+++ terms-2.tex (Revision 1918)
@@ -174,8 +174,12 @@
\item The Fortran version of the same
function used with \code{USE mpi} or \code{INCLUDE 'mpif.h'}.
\end{itemize}
+
+An exception is \sectionref{sec:mpit} ``The \MPI/ Tool Information Interface'',
+which only provides ISO C interfaces.
+
``Fortran'' in this document refers to Fortran 90 and higher; see
-Section~\ref{subsec:binding}.
+\sectionref{subsec:binding}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Semantic Terms}
_________________________________________________________________________
Index: terms-2.tex #449
===================================================================
--- terms-2.tex (Revision 1918)
+++ terms-2.tex (Revision 1919)
@@ -386,10 +386,13 @@
assignment/comparison is made since
such operations are common.
This restricts the domain of possible implementations.
-The alternative would have been
+The alternative in C would have been
to allow handles to have been an arbitrary, opaque type. This would
force the introduction of routines to do assignment and comparison, adding
complexity, and was therefore ruled out.
+In Fortran, the handles are defined such that assignment and comparison
+are available through the operators of the language or overloaded
+versions of these operators.
\end{rationale}
\begin{users}
_________________________________________________________________________
Index: terms-2.tex #450
===================================================================
--- terms-2.tex (Revision 1919)
+++ terms-2.tex (Revision 1920)
@@ -464,7 +464,7 @@
will be outside the regular range.
The range of regular values, such as \mpiarg{tag}, can
be queried using environmental inquiry
-functions (Chapter~7 of the \mpii/ document).
+functions, see \namedref{Chapter}{chap:environment}.
The range of other values, such as \mpiarg{source}, depends on values given by
other \mpi/ routines (in the case of \mpiarg{source} it is the communicator
size).
_________________________________________________________________________
Index: terms-2.tex #451
===================================================================
--- terms-2.tex (Revision 1920)
+++ terms-2.tex (Revision 1921)
@@ -189,22 +189,12 @@
terms are used.
\begin{description}
-\item[\mpiterm{nonblocking}] A procedure is nonblocking if the procedure may return before the
+\item[\mpiterm{nonblocking}] A procedure is nonblocking if it may return before the associated
operation completes, and before the user is allowed to reuse
resources (such as buffers) specified in the call.
-A nonblocking request is \mpiterm{started} by the call that initiates it, e.g.,
-\mpifunc{MPI\_ISEND}.
-The word complete is used with respect to operations, requests, and
+The word complete is used with respect to operations and any associated requests and/or
communications. An \mpiterm{operation completes} when the user is allowed
-to reuse resources, and any output buffers have been updated; i.e., a
-call to \mpifunc{MPI\_TEST} will return
-\mpiarg{flag}~=~\consti{true}. A \mpiterm{request is completed} by a call
-to wait, which returns, or a test or get status call which returns
-\mpiarg{flag}~=~\consti{true}. This completing call has two effects:
-the status is extracted from the request; in the case of test and
-wait, if the request was nonpersistent, it is
-\mpiterm{freed}, and becomes \mpiterm{inactive} if it was persistent.
-A \mpiterm{communication completes} when all participating operations complete.
+to reuse resources, and any output buffers have been updated.
\item[\mpiterm{blocking}] A procedure is blocking if return from the procedure indicates the user
is allowed to reuse resources specified in the call.
\item[\mpiterm{local}]
_________________________________________________________________________
Index: terms-2.tex #452
===================================================================
--- terms-2.tex (Revision 1921)
+++ terms-2.tex (Revision 1922)
@@ -666,7 +666,7 @@
\mpiii/, these functions
were given new names with
new bindings for the
-address arguments. The use of the old functions is deprecated.
+address arguments. The use of the old functions was declared as deprecated.
For consistency, here and
in
a few other cases, new C
_________________________________________________________________________
Index: terms-2.tex #453
===================================================================
--- terms-2.tex (Revision 1925)
+++ terms-2.tex (Revision 1926)
@@ -649,7 +649,8 @@
Since Fortran is case insensitive, linkers may use either lower case
or upper case when resolving Fortran names. Users of case sensitive
-languages should avoid the ``mpi\_'' and ``pmpi\_'' prefixes.
+languages should avoid any prefix of the form ``\code{MPI\_}'' and ``\code{PMPI\_}'',
+where any of the letters are either upper or lower case.
\subsection{Deprecated and Removed Names and Functions}
\label{sec:deprecated}
@@ -776,7 +777,10 @@
capitals. Programs must not declare names, e.g., for
variables, subroutines,
functions, parameters, derived types, abstract interfaces, or modules,
-beginning with the prefix \code{MPI\_}. To avoid
+beginning with the prefix \code{MPI\_},
+with the exception of \code{MPI\_} routines written by the user
+to make use of the profiling interface.
+To avoid
conflicting with the profiling interface, programs must also avoid subroutines and functions with the prefix \code{PMPI\_}.
This is mandated to avoid possible name collisions.
@@ -823,9 +827,13 @@
Programs must not declare names (identifiers), e.g., for
variables, functions, constants, types, or macros,
beginning with
-the prefix \code{MPI\_}.
+any prefix of the form \code{MPI\_},
+where any of the letters are either upper or lower case.
+An exception are \code{MPI\_} routines written by the user to
+make use of the profiling interface.
To support the profiling interface, programs must not declare
-functions with names beginning with the prefix \code{PMPI\_}.
+functions with names beginning with any prefix of the form \code{PMPI\_},
+where any of the letters are either upper or lower case.
The definition of named constants, function prototypes, and type
definitions must be supplied in an include file \code{mpi.h}.
_________________________________________________________________________
Index: terms-2.tex #455
===================================================================
--- terms-2.tex (Revision 1927)
+++ terms-2.tex (Revision 1928)
@@ -851,14 +851,6 @@
Choice arguments are pointers of type \code{void *}.
-Address arguments are of \MPI/ defined type
-\type{MPI\_Aint}\cdeclindex{MPI\_Aint}.
-File displacements are of type \type{MPI\_Offset}\cdeclindex{MPI\_Offset}.
-\const{MPI\_Aint} is defined to be an integer of the size needed to
-hold any valid address on the target architecture.
-\type{MPI\_Offset} is defined to be an integer of the size needed to
-hold any valid file size on the target architecture.
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Functions and Macros}
_________________________________________________________________________
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment