# [mpiwg-hybridpm] Meeting Today

Jim Dinan james.dinan at gmail.com
Mon Aug 25 09:53:01 CDT 2014

Hi All,

As promised, here is the diff of the endpoints text since the June reading.

1. Consistent use of terminology -- use "ranks" to refer to members of the
output communicator and "processes" to refer to members of the input
communicator.

2. Clarified MPI_ERR_ENDPOINTS error case.

3. Clarified semantics of collectives on endpoints communicators.

4. Fixed broken section reference to point-to-point semantics for processes.

5. Moved the "No cached ..." paragraph to co-locate inter- and intra-
communicator text.

Query to WG members -- Do we feel this is ticket 0 territory, or should we
plan to re-read in Japan?  If we feel these changes do not require a
re-read, I'll contact Martin with the request.

~Jim.

On Mon, Aug 11, 2014 at 1:32 PM, Jim Dinan <james.dinan at gmail.com> wrote:

> Thanks to all WG members who were able to attend.  Meeting notes are
> posted on the wiki:
>
>
> https://svn.mpi-forum.org/trac/mpi-forum-web/wiki/MPI3Hybrid/notes-2014-08-11
>
>  ~Jim.
>
>
> On Mon, Aug 11, 2014 at 11:55 AM, Jim Dinan <james.dinan at gmail.com> wrote:
>
>> We should start getting ready for Japan.  There are a few endpoints
>> issues to close on.
>>  On Aug 11, 2014 11:46 AM, "Steven Oyanagi" <sko at cray.com> wrote:
>>
>>> Hi Jim,
>>>
>>> I was assuming so and planning on it.  What are we talking about today?
>>>         - Steve
>>>
>>> -----Original Message-----
>>> From: Jim Dinan <james.dinan at gmail.com>
>>> <mpiwg-hybridpm at lists.mpi-forum.org>
>>> Date: Monday, August 11, 2014 at 10:28 AM
>>> To: "mpiwg-hybridpm at lists.mpi-forum.org"
>>> <mpiwg-hybridpm at lists.mpi-forum.org>
>>> Subject: [mpiwg-hybridpm] Meeting Today
>>>
>>> >Hi All,
>>> >
>>> >
>>> >Are we meeting today?
>>> >
>>> >
>>> > ~Jim.
>>> >
>>>
>>> _______________________________________________
>>> mpiwg-hybridpm mailing list
>>> mpiwg-hybridpm at lists.mpi-forum.org
>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-hybridpm
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-hybridpm/attachments/20140825/89df0d8d/attachment-0001.html>
-------------- next part --------------
Index: chap-context/context.tex
===================================================================
--- chap-context/context.tex	(revision 1794)
+++ chap-context/context.tex	(revision 1818)
@@ -1207,43 +1207,53 @@

\mpifunc{MPI\_COMM\_CREATE\_ENDPOINTS} creates a new communicator from an
existing communicator, \mpiarg{parent\_comm}, where \mpiarg{my\_num\_ep} ranks
-in the output communicator are associated with a single calling rank in
+in the output communicator are associated with a single calling process in
\mpiarg{parent\_comm}. This function is collective on \mpiarg{parent\_comm}.
Distinct handles for each associated rank in the output communicator are
-returned in the \mpiarg{new\_comm\_handles} array at the corresponding rank in
+returned in the \mpiarg{new\_comm\_handles} array at the corresponding process in
\mpiarg{parent\_comm}. Ranks associated with a process in \mpiarg{parent\_comm}
are numbered contiguously in the output communicator, and the starting rank is
-defined by the order of the associated rank in the parent communicator.
+defined by the order of the associated rank of the process in the parent communicator.
The communicator handle returned at index 0 in \mpiarg{new\_comm\_handles}
corresponds to the calling process in \mpiarg{parent\_comm}.  All other
communicator handles returned in \mpiarg{new\_comm\_handles} represent new
ranks that are not members of the group of \mpiarg{parent\_comm}.

If \mpiarg{parent\_comm} is an intracommunicator, this function returns a new
-intracommunicator new\_comm with a communication group of size equal to the sum
-of the values of \mpiarg{my\_num\_ep} on all calling processes. No cached
-information propagates from \mpiarg{parent\_comm} to new\_comm. Each process in
-\mpiarg{parent\_comm} must call \mpifunc{MPI\_COMM\_CREATE\_ENDPOINTS} with a
-\mpiarg{my\_num\_ep} argument that is greater or equal to 0. Each process may
-specify a different value for the \mpiarg{my\_num\_ep} argument. When
-\mpiarg{my\_num\_ep} is 0, no output communicator is returned and the
-\mpiarg{new\_comm\_handles}'' argument is ignored. If the MPI implementation
-is not able to create a new communicator because of the \mpiarg{my\_num\_ep}
-argument given by any process, this function will return
-\error{MPI\_ERR\_ENDPOINTS}.
-
+intracommunicator with a communication group of size equal to the sum
+of the values of \mpiarg{my\_num\_ep} on all calling processes.
+%
If \mpiarg{parent\_comm} is an intercommunicator, then the output communicator
-is also an intercommunicator where the local group consists of endpoint ranks
-associated with ranks in the local group of \mpiarg{parent\_comm} and the
-remote group consists of endpoint ranks associated with ranks in the remote
+is also an intercommunicator where the local group consists of ranks
+associated with processes in the local group of \mpiarg{parent\_comm} and the
+remote group consists of ranks associated with processes in the remote
group of \mpiarg{parent\_comm}. If either the local or remote group is empty,
\const{MPI\_COMM\_NULL} is returned in all entries of
\mpiarg{new\_comm\_handles}.

+No cached
+information propagates from \mpiarg{parent\_comm} to the new communicator. Each process in
+\mpiarg{parent\_comm} must call \mpifunc{MPI\_COMM\_CREATE\_ENDPOINTS} with a
+\mpiarg{my\_num\_ep} argument that is greater or equal to 0. Each process may
+specify a different value for the \mpiarg{my\_num\_ep} argument. When a process
+provides a
+\mpiarg{my\_num\_ep} argument of 0, no output communicator is returned at that process and its
+\mpiarg{new\_comm\_handles} argument is ignored.
+%
+%% Option 2:
+If a process provides a valid \mpiarg{my\_num\_ep} argument, but the MPI
+implementation is not able to create a new communicator because of the
+\mpiarg{my\_num\_ep} argument at this process, this function will return
+\error{MPI\_ERR\_ENDPOINTS} at all processes.
+%
+%% Option 1:
+%If the MPI implementation is not able to create a new communicator because a
+%valid \mpiarg{my\_num\_ep} argument given by any process, this function will
+%return \error{MPI\_ERR\_ENDPOINTS} at all processes.
+
Ranks in the new communicator behave as separate MPI processes, including
-semantics specified in Section~\ref{sec}, which the application must guarantee for each endpoint.  For example, a
-collective function on the new communicator must be called concurrently on
-every rank in this communicator.
+semantics specified in Section~\ref{sec:pt2pt-semantics}, which the application must guarantee for each rank.  For example, a
+collective operation on the new communicator must have the participation of every rank in this communicator.
%An exception to this rule is made for
%\mpifunc{MPI\_COMM\_FREE}, which must be called for every rank in the new
%communicator, but must permit a single thread to perform these calls serially.
@@ -1259,7 +1269,7 @@
Although threads can acquire individual ranks through the
\mpifunc{MPI\_COMM\_CREATE\_ENDPOINTS} function, they still share an instance
of the MPI library. Users must ensure that the threading level with which MPI
-was initialized is maintained. Some operations, such as collective operations,
+was initialized is maintained. Some operations, such as blocking collective operations,
cannot be used by multiple threads sharing an instance of the MPI library, when
MPI was not initialized with \const{MPI\_THREAD\_MULTIPLE}.
\end{users}