next up previous contents index
Next: Submatrix Argument Descriptions Up: In-core Dense Matrices Previous: Array Descriptor for In-core

Example

 

As mentioned in section 4.3.1, ScaLAPACK assumes a one-dimensional or two-dimensional block-cyclic distribution for the dense matrix computational routines. The block-cyclic distribution is a generalization of the block and cyclic distributions. In one dimension, blocks of rows of size MB or blocks of columns of size NB are cyclically distributed over the processes. In two dimensions, blocks of size tex2html_wrap_inline14817 are distributed cyclically over the processes.   Example programs can be found in section 2.3 and Appendix C.1.

According to the two-dimensional block cyclic data distribution, scheme an M_ by N_  dense matrix is first decomposed into MB_ by NB_  blocks starting at its upper left corner. These blocks are then uniformly distributed in each dimension of the process grid. Thus, every process owns a collection of blocks, which are locally and contiguously stored in a two-dimensional ``column major'' array. The partitioning   of a tex2html_wrap_inline12402 matrix into tex2html_wrap_inline14859 blocks and the mapping of these blocks onto a tex2html_wrap_inline14922 process grid are shown in figure 4.6. The local entries of every matrix column are contiguously stored in the processes' memories.

 figure2562
Figure: 4.6 A tex2html_wrap_inline12402 matrix decomposed into tex2html_wrap_inline14859   blocks mapped onto a tex2html_wrap_inline14922 process grid

The number of rows of a matrix     and the number of columns of a matrix that a specific process owns, denoted LOCtex2html_wrap_inline12112 and LOCtex2html_wrap_inline12114 respectively, may differ from process to process in the process grid. Likewise, there is a local leading dimension LLD_  for each process in the process grid. This value may be different on each process in the process grid. For example, we can see on the right of figure 4.6 that the local array stored in process row 0 must have a local leading dimension LLD_ greater than or equal to 5, and greater than or equal to 4 in the process row 1.

  table2576
Table 4.8: Sizes of the local arrays

Table 4.8 gives the values of the local array sizes associated with figure 4.6.


next up previous contents index
Next: Submatrix Argument Descriptions Up: In-core Dense Matrices Previous: Array Descriptor for In-core

Susan Blackford
Tue May 13 09:21:01 EDT 1997