There are several ways of partitioning a sparse matrix over multiple processors. The scheme supported by all packages is partitioning by block rows.

- Each processor receives a contiguous series of rows
of the matrix. This is the approach taken in Petsc (3.10);
it is available in BlockSolve95 (3.2).
Under this approach a processor can determine the ownership of any variable, by keeping a short list of first and last rows of each processor.

- Each processor receives an arbitrary set or rows.
This is the approach taken in Aztec (3.1);
it is available in BlockSolve95 (3.2).
Under this scheme, each processor needs to maintain the mapping of its local rows to the global numbering. It is now no longer trivial to determine ownership of a variable.

When a sparse matrix is distributed, the local matrix on each processor needs to have its column indices mapped from the global to the local numbering. Various packages offer support for this renumbering.

Mon Aug 25 17:46:10 PDT 1997