Rather than describing the distribution of each individual vector and matrix directly, the PLAPACK infrastructure requires the distribution of (imaginary) template vectors and matrices to be described. Vector and matrix distribution is given by indicating alignment with respect to these template vectors and matrices.
Imagine an infinite length vector t , which is partitioned like
with all of uniform length , the distribution blocking size (see Figure 2.1). Sub-vectors are assigned to the logical two-dimensional mesh corresponding to the communicator (mentioned above) by wrapping in column-major order: is assigned to , as illustrated in Figure 2.1. Here r and c denote the row and column dimension of the mesh of nodes encoded in the PLAPACK base communicator. We will call this the template vector. In our discussion, we will start our indexing at zero, as is customary in C. PLAPACK allows one to specify whether to start counting at one, as is customary in FORTRAN, or zero.
A distributed vector is aligned to this template vector by indicating the element of the template vector with which the first element of the vector to be distributed is aligned, as illustrated in Figure 2.1. The distribution of the elements of the vector to be distributed is then dictated by the distribution of corresponding elements of the template vector. Thus, if the first element of the vector is aligned with element i of the template vector, the j th element of the vector to be distributed is assigned to the same node as the i+j th element of the template vector.
The distribution of matrices is now induced by this template vector. More specifically, let T be an infinite matrix, partitioned like
where are sub-matrices. Then this template matrix is distributed to nodes as induced by the template vector, t , as illustrated in Figure . A given matrix to be distributed is now aligned to this template by indicating the element of T with which the top-left element of the matrix to be distributed is aligned, as illustrated in Figure 2.2.