topology, overlapping
In some applications, it is desirable to use different Cartesian topologies at
different stages in the computation. For example, in a QR
factorization, the transformation is determined by the
data below the diagonal in the
column of the matrix. It
is often easiest to think of the upper right hand corner of the 2D
topology as starting on the process with the
diagonal
element of the matrix for the
stage of the computation.
Since the original matrix was laid out in the original 2D topology, it
is necessary to maintain a relationship between it and the shifted 2D
topology in the
stage. For example, the processes
forming a row or column in the original 2D topology must also form a
row or column in the shifted 2D topology in the
stage.
As stated in Section
and shown in
Figure
, there is a clear correspondence between
the rank of a process and its coordinates in a Cartesian topology.
This relationship can be used to create multiple Cartesian topologies
with the desired relationship. Figure
shows
the relationship of two 2D Cartesian topologies where the second
one is shifted by two rows and two columns.
Figure: The relationship between two overlaid topologies on a
3x4 torus. The upper values in each process is the
rank / (row,col) in the original 2D topology and the lower values are
the same for the shifted 2D topology. Note that rows and columns of
processes remain intact.