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.