[Mpi-forum] Sparse / neighborhood topology ticket 258

Torsten Hoefler htor at illinois.edu
Wed Feb 9 07:46:51 CST 2011


Rolf,
> please make a straw-vote-decision TODAY about the two variants
> in this email. I myself prefer variant A.
FYI: We had a discussion about this at the Forum and decided for various
reasons for variant A. We also decided that the communication behaves
exactly as a communication with MPI_PROC_NULL would. I.e., the buffers
are not changed.

> The current text does not include a precise definition of the
> sequence of the neighbors.
It is in the current draft (the part in brackets is pending a
grammar-edit). For both operations, the sequence is clearly defined and
variant A is implicit. We can make it more explicit but the definition
right now is clear (variant A).

I'll finish my pending edits and then we can see if we want to add more
clarifying text.

Best,
  Torsten

> I recommend to add such a definition before the Rationale in Sect. 7.6.
> 
> New text:
> The sequence of the neighbors is defined
>  - in a Cartesian topology by the order of the dimensions, 
>    and in each dimension, first the neighbor in the negative 
>    direction and then in the positive direction with displacement 1.
>    If such a neighbor does not exist, i.e., at the border 
>    in the case of a non-periodic virtual grid dimension 
>    (i.e., periods[...]==false), then
>    (VARIANT A)
>    this neighbor is MPI_PROC_NULL and it is still part of the
>    sequence of neighbors, but the corresponding buffer portion
>    is not communicated. The values of indegree and outdegree
>    in the communication routines are 2*ndims with ndims defined
>    defined in MPI_CART_CREATE.
>    (VARIANT B)
>    this neighbor is not part of the sequence of neighbors.
>    The values of indegree and outdegree
>    in the communication routines are 2*ndims (with ndims defined
>    defined in MPI_CART_CREATE), reduced by the number of
>    non-existing neighbors.
>    (END OF VARIANTS)
>    The sequence of incoming and outgoing neighbors is identical.
>  - in a general graph topology, the sequence of neighbors
>    in each process is defined through the list of neighbors 
>    for this process as defined in the arguments index and edges 
>    in MPI_GRAPH_CREATE, which is identical to the sequence 
>    returned by MPI_GRAPH_NEIGHBORS.
>    The values of indegree and outdegree in the communication
>    routines are identical to nneighbors returned by 
>    MPI_GRAPH_NEIGHBOR_COUNT in each process for its own rank.
>    The sequence of incoming and outgoing neighbors is identical.
>  - in a distributed graph topology, the sequence of neighbors
>    in each process is returned by MPI_DIST_GRAPH_NEIGHBORS.
>    The values of indegree and outdegree in the communication
>    routines are identical to the values returned by 
>    MPI_DIST_GRAPH_NEIGHBORS_COUNT.
>    If the distributed graph topology was created by
>    MPI_DIST_GRAPH_CREATE_ADJACENT, then the sequence 
>    of incoming and outgoing neighbors is 
>    identical to the sequence that was defined in 
>    MPI_DIST_GRAPH_CREATE_ADJACENT.
> 
> With this detailled definition, the following remark in parentheses
> in 7.6.1 and 7.6.2 can be removed:
>    (the order of neighbors is returned by the neighborhood 
>    query functions or for Cartesian communicators, it is in 
>    the order of the dimensions, in each dimension first the 
>    negative and then the positive direction)
> 
> Torsten, please return the decision, Variant A or B.

-- 
 bash$ :(){ :|:&};: --------------------- http://www.unixer.de/ -----
Torsten Hoefler         | Performance Modeling and Simulation Lead
Blue Waters Directorate | University of Illinois (UIUC)
1205 W Clark Street     | Urbana, IL, 61801
NCSA Building           | +01 (217) 244-7736



More information about the mpi-forum mailing list